/*! For license information please see socket.io.js.LICENSE.txt */
!(function (t, e) {
	'object' == typeof exports && 'object' == typeof module
		? (module.exports = e())
		: 'function' == typeof define && define.amd
		? define([], e)
		: 'object' == typeof exports
		? (exports.io = e())
		: (t.io = e());
})(this, function () {
	return (function (t) {
		function e(r) {
			if (n[r]) return n[r].exports;
			var o = (n[r] = { exports: {}, id: r, loaded: !1 });
			return t[r].call(o.exports, o, o.exports, e), (o.loaded = !0), o.exports;
		}
		var n = {};
		return (e.m = t), (e.c = n), (e.p = ''), e(0);
	})([
		function (t, e, n) {
			function r(t, e) {
				'object' == typeof t && ((e = t), (t = void 0)), (e = e || {});
				var n,
					r = o(t),
					i = r.source,
					u = r.id,
					p = r.path,
					h = c[u] && p in c[u].nsps;
				return (
					e.forceNew || e['force new connection'] || !1 === e.multiplex || h
						? (a('ignoring socket cache for %s', i), (n = s(i, e)))
						: (c[u] || (a('new io instance for %s', i), (c[u] = s(i, e))), (n = c[u])),
					r.query && !e.query && (e.query = r.query),
					n.socket(r.path, e)
				);
			}
			var o = n(1),
				i = n(7),
				s = n(15),
				a = n(3)('socket.io-client');
			t.exports = e = r;
			var c = (e.managers = {});
			(e.protocol = i.protocol), (e.connect = r), (e.Manager = n(15)), (e.Socket = n(39));
		},
		function (t, e, n) {
			var r = n(2),
				o = n(3)('socket.io-client:url');
			t.exports = function (t, e) {
				var n = t;
				(e = e || ('undefined' != typeof location && location)),
					null == t && (t = e.protocol + '//' + e.host),
					'string' == typeof t &&
						('/' === t.charAt(0) && (t = '/' === t.charAt(1) ? e.protocol + t : e.host + t),
						/^(https?|wss?):\/\//.test(t) || (o('protocol-less url %s', t), (t = 'undefined' != typeof e ? e.protocol + '//' + t : 'https://' + t)),
						o('parse %s', t),
						(n = r(t))),
					n.port || (/^(http|ws)$/.test(n.protocol) ? (n.port = '80') : /^(http|ws)s$/.test(n.protocol) && (n.port = '443')),
					(n.path = n.path || '/');
				var i = -1 !== n.host.indexOf(':') ? '[' + n.host + ']' : n.host;
				return (n.id = n.protocol + '://' + i + ':' + n.port), (n.href = n.protocol + '://' + i + (e && e.port === n.port ? '' : ':' + n.port)), n;
			};
		},
		function (t, e) {
			var n =
					/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
				r = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'];
			t.exports = function (t) {
				var e = t,
					o = t.indexOf('['),
					i = t.indexOf(']');
				-1 != o && -1 != i && (t = t.substring(0, o) + t.substring(o, i).replace(/:/g, ';') + t.substring(i, t.length));
				for (var s = n.exec(t || ''), a = {}, c = 14; c--; ) a[r[c]] = s[c] || '';
				return (
					-1 != o &&
						-1 != i &&
						((a.source = e),
						(a.host = a.host.substring(1, a.host.length - 1).replace(/;/g, ':')),
						(a.authority = a.authority.replace('[', '').replace(']', '').replace(/;/g, ':')),
						(a.ipv6uri = !0)),
					a
				);
			};
		},
		function (t, e, n) {
			(function (r) {
				'use strict';
				var o =
					'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
						? function (t) {
								return typeof t;
						  }
						: function (t) {
								return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t;
						  };
				(e.log = function () {
					var t;
					return 'object' === ('undefined' == typeof console ? 'undefined' : o(console)) && console.log && (t = console).log.apply(t, arguments);
				}),
					(e.formatArgs = function (e) {
						if (
							((e[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + e[0] + (this.useColors ? '%c ' : ' ') + '+' + t.exports.humanize(this.diff)),
							this.useColors)
						) {
							var n = 'color: ' + this.color;
							e.splice(1, 0, n, 'color: inherit');
							var r = 0,
								o = 0;
							e[0].replace(/%[a-zA-Z%]/g, function (t) {
								'%%' !== t && (r++, '%c' === t && (o = r));
							}),
								e.splice(o, 0, n);
						}
					}),
					(e.save = function (t) {
						try {
							t ? e.storage.setItem('debug', t) : e.storage.removeItem('debug');
						} catch (n) {}
					}),
					(e.load = function () {
						var t = void 0;
						try {
							t = e.storage.getItem('debug');
						} catch (n) {}
						return !t && 'undefined' != typeof r && 'env' in r && (t = r.env.DEBUG), t;
					}),
					(e.useColors = function () {
						return (
							!('undefined' == typeof window || !window.process || ('renderer' !== window.process.type && !window.process.__nwjs)) ||
							(('undefined' == typeof navigator || !navigator.userAgent || !navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) &&
								(('undefined' != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
									('undefined' != typeof window && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
									('undefined' != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
									('undefined' != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))))
						);
					}),
					(e.storage = (function () {
						try {
							return localStorage;
						} catch (t) {}
					})()),
					(e.colors = [
						'#0000CC',
						'#0000FF',
						'#0033CC',
						'#0033FF',
						'#0066CC',
						'#0066FF',
						'#0099CC',
						'#0099FF',
						'#00CC00',
						'#00CC33',
						'#00CC66',
						'#00CC99',
						'#00CCCC',
						'#00CCFF',
						'#3300CC',
						'#3300FF',
						'#3333CC',
						'#3333FF',
						'#3366CC',
						'#3366FF',
						'#3399CC',
						'#3399FF',
						'#33CC00',
						'#33CC33',
						'#33CC66',
						'#33CC99',
						'#33CCCC',
						'#33CCFF',
						'#6600CC',
						'#6600FF',
						'#6633CC',
						'#6633FF',
						'#66CC00',
						'#66CC33',
						'#9900CC',
						'#9900FF',
						'#9933CC',
						'#9933FF',
						'#99CC00',
						'#99CC33',
						'#CC0000',
						'#CC0033',
						'#CC0066',
						'#CC0099',
						'#CC00CC',
						'#CC00FF',
						'#CC3300',
						'#CC3333',
						'#CC3366',
						'#CC3399',
						'#CC33CC',
						'#CC33FF',
						'#CC6600',
						'#CC6633',
						'#CC9900',
						'#CC9933',
						'#CCCC00',
						'#CCCC33',
						'#FF0000',
						'#FF0033',
						'#FF0066',
						'#FF0099',
						'#FF00CC',
						'#FF00FF',
						'#FF3300',
						'#FF3333',
						'#FF3366',
						'#FF3399',
						'#FF33CC',
						'#FF33FF',
						'#FF6600',
						'#FF6633',
						'#FF9900',
						'#FF9933',
						'#FFCC00',
						'#FFCC33'
					]),
					(t.exports = n(5)(e)),
					(t.exports.formatters.j = function (t) {
						try {
							return JSON.stringify(t);
						} catch (e) {
							return '[UnexpectedJSONParseError]: ' + e.message;
						}
					});
			}).call(e, n(4));
		},
		function (t, e) {
			function n() {
				throw new Error('setTimeout has not been defined');
			}
			function r() {
				throw new Error('clearTimeout has not been defined');
			}
			function o(t) {
				if (u === setTimeout) return setTimeout(t, 0);
				if ((u === n || !u) && setTimeout) return (u = setTimeout), setTimeout(t, 0);
				try {
					return u(t, 0);
				} catch (e) {
					try {
						return u.call(null, t, 0);
					} catch (e) {
						return u.call(this, t, 0);
					}
				}
			}
			function i() {
				d && f && ((d = !1), f.length ? (l = f.concat(l)) : (y = -1), l.length && s());
			}
			function s() {
				if (!d) {
					var t = o(i);
					d = !0;
					for (var e = l.length; e; ) {
						for (f = l, l = []; ++y < e; ) f && f[y].run();
						(y = -1), (e = l.length);
					}
					(f = null),
						(d = !1),
						(function (t) {
							if (p === clearTimeout) return clearTimeout(t);
							if ((p === r || !p) && clearTimeout) return (p = clearTimeout), clearTimeout(t);
							try {
								p(t);
							} catch (e) {
								try {
									return p.call(null, t);
								} catch (e) {
									return p.call(this, t);
								}
							}
						})(t);
				}
			}
			function a(t, e) {
				(this.fun = t), (this.array = e);
			}
			function c() {}
			var u,
				p,
				h = (t.exports = {});
			!(function () {
				try {
					u = 'function' == typeof setTimeout ? setTimeout : n;
				} catch (t) {
					u = n;
				}
				try {
					p = 'function' == typeof clearTimeout ? clearTimeout : r;
				} catch (t) {
					p = r;
				}
			})();
			var f,
				l = [],
				d = !1,
				y = -1;
			(h.nextTick = function (t) {
				var e = new Array(arguments.length - 1);
				if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
				l.push(new a(t, e)), 1 !== l.length || d || o(s);
			}),
				(a.prototype.run = function () {
					this.fun.apply(null, this.array);
				}),
				(h.title = 'browser'),
				(h.browser = !0),
				(h.env = {}),
				(h.argv = []),
				(h.version = ''),
				(h.versions = {}),
				(h.on = c),
				(h.addListener = c),
				(h.once = c),
				(h.off = c),
				(h.removeListener = c),
				(h.removeAllListeners = c),
				(h.emit = c),
				(h.prependListener = c),
				(h.prependOnceListener = c),
				(h.listeners = function (t) {
					return [];
				}),
				(h.binding = function (t) {
					throw new Error('process.binding is not supported');
				}),
				(h.cwd = function () {
					return '/';
				}),
				(h.chdir = function (t) {
					throw new Error('process.chdir is not supported');
				}),
				(h.umask = function () {
					return 0;
				});
		},
		function (t, e, n) {
			'use strict';
			function r(t) {
				if (Array.isArray(t)) {
					for (var e = 0, n = Array(t.length); e < t.length; e++) n[e] = t[e];
					return n;
				}
				return Array.from(t);
			}
			t.exports = function (t) {
				function e(t) {
					for (var e = 0, n = 0; n < t.length; n++) (e = (e << 5) - e + t.charCodeAt(n)), (e |= 0);
					return o.colors[Math.abs(e) % o.colors.length];
				}
				function o(t) {
					function n() {
						for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i];
						if (n.enabled) {
							var s = n,
								a = Number(new Date()),
								c = a - (r || a);
							(s.diff = c), (s.prev = r), (s.curr = a), (r = a), (e[0] = o.coerce(e[0])), 'string' != typeof e[0] && e.unshift('%O');
							var u = 0;
							(e[0] = e[0].replace(/%([a-zA-Z%])/g, function (t, n) {
								if ('%%' === t) return t;
								u++;
								var r = o.formatters[n];
								if ('function' == typeof r) {
									var i = e[u];
									(t = r.call(s, i)), e.splice(u, 1), u--;
								}
								return t;
							})),
								o.formatArgs.call(s, e);
							var p = s.log || o.log;
							p.apply(s, e);
						}
					}
					var r = void 0;
					return (
						(n.namespace = t),
						(n.enabled = o.enabled(t)),
						(n.useColors = o.useColors()),
						(n.color = e(t)),
						(n.destroy = i),
						(n.extend = s),
						'function' == typeof o.init && o.init(n),
						o.instances.push(n),
						n
					);
				}
				function i() {
					var t = o.instances.indexOf(this);
					return -1 !== t && (o.instances.splice(t, 1), !0);
				}
				function s(t, e) {
					var n = o(this.namespace + ('undefined' == typeof e ? ':' : e) + t);
					return (n.log = this.log), n;
				}
				function a(t) {
					return t
						.toString()
						.substring(2, t.toString().length - 2)
						.replace(/\.\*\?$/, '*');
				}
				return (
					(o.debug = o),
					(o.default = o),
					(o.coerce = function (t) {
						return t instanceof Error ? t.stack || t.message : t;
					}),
					(o.disable = function () {
						var t = []
							.concat(
								r(o.names.map(a)),
								r(
									o.skips.map(a).map(function (t) {
										return '-' + t;
									})
								)
							)
							.join(',');
						return o.enable(''), t;
					}),
					(o.enable = function (t) {
						o.save(t), (o.names = []), (o.skips = []);
						var e = void 0,
							n = ('string' == typeof t ? t : '').split(/[\s,]+/),
							r = n.length;
						for (e = 0; e < r; e++) n[e] && ('-' === (t = n[e].replace(/\*/g, '.*?'))[0] ? o.skips.push(new RegExp('^' + t.substr(1) + '$')) : o.names.push(new RegExp('^' + t + '$')));
						for (e = 0; e < o.instances.length; e++) {
							var i = o.instances[e];
							i.enabled = o.enabled(i.namespace);
						}
					}),
					(o.enabled = function (t) {
						if ('*' === t[t.length - 1]) return !0;
						var e = void 0,
							n = void 0;
						for (e = 0, n = o.skips.length; e < n; e++) if (o.skips[e].test(t)) return !1;
						for (e = 0, n = o.names.length; e < n; e++) if (o.names[e].test(t)) return !0;
						return !1;
					}),
					(o.humanize = n(6)),
					Object.keys(t).forEach(function (e) {
						o[e] = t[e];
					}),
					(o.instances = []),
					(o.names = []),
					(o.skips = []),
					(o.formatters = {}),
					(o.selectColor = e),
					o.enable(o.load()),
					o
				);
			};
		},
		function (t, e) {
			function n(t) {
				var e = Math.abs(t);
				return e >= a ? r(t, e, a, 'day') : e >= s ? r(t, e, s, 'hour') : e >= i ? r(t, e, i, 'minute') : e >= o ? r(t, e, o, 'second') : t + ' ms';
			}
			function r(t, e, n, r) {
				var o = e >= 1.5 * n;
				return Math.round(t / n) + ' ' + r + (o ? 's' : '');
			}
			var o = 1e3,
				i = 60 * o,
				s = 60 * i,
				a = 24 * s,
				c = 7 * a,
				u = 365.25 * a;
			t.exports = function (t, e) {
				e = e || {};
				var r = typeof t;
				if ('string' === r && t.length > 0)
					return (function (t) {
						if (!((t = String(t)).length > 100)) {
							var e = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);
							if (e) {
								var n = parseFloat(e[1]);
								switch ((e[2] || 'ms').toLowerCase()) {
									case 'years':
									case 'year':
									case 'yrs':
									case 'yr':
									case 'y':
										return n * u;
									case 'weeks':
									case 'week':
									case 'w':
										return n * c;
									case 'days':
									case 'day':
									case 'd':
										return n * a;
									case 'hours':
									case 'hour':
									case 'hrs':
									case 'hr':
									case 'h':
										return n * s;
									case 'minutes':
									case 'minute':
									case 'mins':
									case 'min':
									case 'm':
										return n * i;
									case 'seconds':
									case 'second':
									case 'secs':
									case 'sec':
									case 's':
										return n * o;
									case 'milliseconds':
									case 'millisecond':
									case 'msecs':
									case 'msec':
									case 'ms':
										return n;
									default:
										return;
								}
							}
						}
					})(t);
				if ('number' === r && isFinite(t))
					return e.long
						? n(t)
						: (function (t) {
								var e = Math.abs(t);
								return e >= a ? Math.round(t / a) + 'd' : e >= s ? Math.round(t / s) + 'h' : e >= i ? Math.round(t / i) + 'm' : e >= o ? Math.round(t / o) + 's' : t + 'ms';
						  })(t);
				throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(t));
			};
		},
		function (t, e, n) {
			function r() {}
			function o(t) {
				var n = '' + t.type;
				if (((e.BINARY_EVENT !== t.type && e.BINARY_ACK !== t.type) || (n += t.attachments + '-'), t.nsp && '/' !== t.nsp && (n += t.nsp + ','), null != t.id && (n += t.id), null != t.data)) {
					var r = (function (t) {
						try {
							return JSON.stringify(t);
						} catch (e) {
							return !1;
						}
					})(t.data);
					if (!1 === r) return d;
					n += r;
				}
				return u('encoded %j as %s', t, n), n;
			}
			function i() {
				this.reconstructor = null;
			}
			function s(t) {
				var n = 0,
					r = { type: Number(t.charAt(0)) };
				if (null == e.types[r.type]) return c('unknown packet type ' + r.type);
				if (e.BINARY_EVENT === r.type || e.BINARY_ACK === r.type) {
					for (var o = ''; '-' !== t.charAt(++n) && ((o += t.charAt(n)), n != t.length); );
					if (o != Number(o) || '-' !== t.charAt(n)) throw new Error('Illegal attachments');
					r.attachments = Number(o);
				}
				if ('/' === t.charAt(n + 1))
					for (r.nsp = ''; ++n; ) {
						if (',' === (s = t.charAt(n))) break;
						if (((r.nsp += s), n === t.length)) break;
					}
				else r.nsp = '/';
				var i = t.charAt(n + 1);
				if ('' !== i && Number(i) == i) {
					for (r.id = ''; ++n; ) {
						var s;
						if (null == (s = t.charAt(n)) || Number(s) != s) {
							--n;
							break;
						}
						if (((r.id += t.charAt(n)), n === t.length)) break;
					}
					r.id = Number(r.id);
				}
				if (t.charAt(++n)) {
					var a = (function (t) {
						try {
							return JSON.parse(t);
						} catch (e) {
							return !1;
						}
					})(t.substr(n));
					if (!(!1 !== a && (r.type === e.ERROR || f(a)))) return c('invalid payload');
					r.data = a;
				}
				return u('decoded %s as %j', t, r), r;
			}
			function a(t) {
				(this.reconPack = t), (this.buffers = []);
			}
			function c(t) {
				return { type: e.ERROR, data: 'parser error: ' + t };
			}
			var u = n(8)('socket.io-parser'),
				p = n(11),
				h = n(12),
				f = n(13),
				l = n(14);
			(e.protocol = 4),
				(e.types = ['CONNECT', 'DISCONNECT', 'EVENT', 'ACK', 'ERROR', 'BINARY_EVENT', 'BINARY_ACK']),
				(e.CONNECT = 0),
				(e.DISCONNECT = 1),
				(e.EVENT = 2),
				(e.ACK = 3),
				(e.ERROR = 4),
				(e.BINARY_EVENT = 5),
				(e.BINARY_ACK = 6),
				(e.Encoder = r),
				(e.Decoder = i);
			var d = e.ERROR + '"encode error"';
			(r.prototype.encode = function (t, n) {
				(u('encoding packet %j', t), e.BINARY_EVENT === t.type || e.BINARY_ACK === t.type)
					? (function (t, e) {
							h.removeBlobs(t, function (t) {
								var n = h.deconstructPacket(t),
									r = o(n.packet),
									i = n.buffers;
								i.unshift(r), e(i);
							});
					  })(t, n)
					: n([o(t)]);
			}),
				p(i.prototype),
				(i.prototype.add = function (t) {
					var n;
					if ('string' == typeof t)
						(n = s(t)),
							e.BINARY_EVENT === n.type || e.BINARY_ACK === n.type
								? ((this.reconstructor = new a(n)), 0 === this.reconstructor.reconPack.attachments && this.emit('decoded', n))
								: this.emit('decoded', n);
					else {
						if (!l(t) && !t.base64) throw new Error('Unknown type: ' + t);
						if (!this.reconstructor) throw new Error('got binary data when not reconstructing a packet');
						(n = this.reconstructor.takeBinaryData(t)) && ((this.reconstructor = null), this.emit('decoded', n));
					}
				}),
				(i.prototype.destroy = function () {
					this.reconstructor && this.reconstructor.finishedReconstruction();
				}),
				(a.prototype.takeBinaryData = function (t) {
					if ((this.buffers.push(t), this.buffers.length === this.reconPack.attachments)) {
						var e = h.reconstructPacket(this.reconPack, this.buffers);
						return this.finishedReconstruction(), e;
					}
					return null;
				}),
				(a.prototype.finishedReconstruction = function () {
					(this.reconPack = null), (this.buffers = []);
				});
		},
		function (t, e, n) {
			(function (r) {
				'use strict';
				function o() {
					var t;
					try {
						t = e.storage.debug;
					} catch (n) {}
					return !t && 'undefined' != typeof r && 'env' in r && (t = r.env.DEBUG), t;
				}
				var i =
					'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
						? function (t) {
								return typeof t;
						  }
						: function (t) {
								return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t;
						  };
				((e = t.exports = n(9)).log = function () {
					return 'object' === ('undefined' == typeof console ? 'undefined' : i(console)) && console.log && Function.prototype.apply.call(console.log, console, arguments);
				}),
					(e.formatArgs = function (t) {
						var n = this.useColors;
						if (((t[0] = (n ? '%c' : '') + this.namespace + (n ? ' %c' : ' ') + t[0] + (n ? '%c ' : ' ') + '+' + e.humanize(this.diff)), n)) {
							var r = 'color: ' + this.color;
							t.splice(1, 0, r, 'color: inherit');
							var o = 0,
								i = 0;
							t[0].replace(/%[a-zA-Z%]/g, function (t) {
								'%%' !== t && (o++, '%c' === t && (i = o));
							}),
								t.splice(i, 0, r);
						}
					}),
					(e.save = function (t) {
						try {
							null == t ? e.storage.removeItem('debug') : (e.storage.debug = t);
						} catch (n) {}
					}),
					(e.load = o),
					(e.useColors = function () {
						return (
							!('undefined' == typeof window || !window.process || 'renderer' !== window.process.type) ||
							(('undefined' == typeof navigator || !navigator.userAgent || !navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) &&
								(('undefined' != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
									('undefined' != typeof window && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
									('undefined' != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
									('undefined' != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))))
						);
					}),
					(e.storage =
						'undefined' != typeof chrome && 'undefined' != typeof chrome.storage
							? chrome.storage.local
							: (function () {
									try {
										return window.localStorage;
									} catch (t) {}
							  })()),
					(e.colors = [
						'#0000CC',
						'#0000FF',
						'#0033CC',
						'#0033FF',
						'#0066CC',
						'#0066FF',
						'#0099CC',
						'#0099FF',
						'#00CC00',
						'#00CC33',
						'#00CC66',
						'#00CC99',
						'#00CCCC',
						'#00CCFF',
						'#3300CC',
						'#3300FF',
						'#3333CC',
						'#3333FF',
						'#3366CC',
						'#3366FF',
						'#3399CC',
						'#3399FF',
						'#33CC00',
						'#33CC33',
						'#33CC66',
						'#33CC99',
						'#33CCCC',
						'#33CCFF',
						'#6600CC',
						'#6600FF',
						'#6633CC',
						'#6633FF',
						'#66CC00',
						'#66CC33',
						'#9900CC',
						'#9900FF',
						'#9933CC',
						'#9933FF',
						'#99CC00',
						'#99CC33',
						'#CC0000',
						'#CC0033',
						'#CC0066',
						'#CC0099',
						'#CC00CC',
						'#CC00FF',
						'#CC3300',
						'#CC3333',
						'#CC3366',
						'#CC3399',
						'#CC33CC',
						'#CC33FF',
						'#CC6600',
						'#CC6633',
						'#CC9900',
						'#CC9933',
						'#CCCC00',
						'#CCCC33',
						'#FF0000',
						'#FF0033',
						'#FF0066',
						'#FF0099',
						'#FF00CC',
						'#FF00FF',
						'#FF3300',
						'#FF3333',
						'#FF3366',
						'#FF3399',
						'#FF33CC',
						'#FF33FF',
						'#FF6600',
						'#FF6633',
						'#FF9900',
						'#FF9933',
						'#FFCC00',
						'#FFCC33'
					]),
					(e.formatters.j = function (t) {
						try {
							return JSON.stringify(t);
						} catch (e) {
							return '[UnexpectedJSONParseError]: ' + e.message;
						}
					}),
					e.enable(o());
			}).call(e, n(4));
		},
		function (t, e, n) {
			'use strict';
			function r(t) {
				function n() {
					if (n.enabled) {
						var t = n,
							o = +new Date(),
							i = o - (r || o);
						(t.diff = i), (t.prev = r), (t.curr = o), (r = o);
						for (var s = new Array(arguments.length), a = 0; a < s.length; a++) s[a] = arguments[a];
						(s[0] = e.coerce(s[0])), 'string' != typeof s[0] && s.unshift('%O');
						var c = 0;
						(s[0] = s[0].replace(/%([a-zA-Z%])/g, function (n, r) {
							if ('%%' === n) return n;
							c++;
							var o = e.formatters[r];
							if ('function' == typeof o) {
								var i = s[c];
								(n = o.call(t, i)), s.splice(c, 1), c--;
							}
							return n;
						})),
							e.formatArgs.call(t, s);
						var u = n.log || e.log || console.log.bind(console);
						u.apply(t, s);
					}
				}
				var r;
				return (
					(n.namespace = t),
					(n.enabled = e.enabled(t)),
					(n.useColors = e.useColors()),
					(n.color = (function (t) {
						var n,
							r = 0;
						for (n in t) (r = (r << 5) - r + t.charCodeAt(n)), (r |= 0);
						return e.colors[Math.abs(r) % e.colors.length];
					})(t)),
					(n.destroy = o),
					'function' == typeof e.init && e.init(n),
					e.instances.push(n),
					n
				);
			}
			function o() {
				var t = e.instances.indexOf(this);
				return -1 !== t && (e.instances.splice(t, 1), !0);
			}
			((e = t.exports = r.debug = r.default = r).coerce = function (t) {
				return t instanceof Error ? t.stack || t.message : t;
			}),
				(e.disable = function () {
					e.enable('');
				}),
				(e.enable = function (t) {
					e.save(t), (e.names = []), (e.skips = []);
					var n,
						r = ('string' == typeof t ? t : '').split(/[\s,]+/),
						o = r.length;
					for (n = 0; n < o; n++) r[n] && ('-' === (t = r[n].replace(/\*/g, '.*?'))[0] ? e.skips.push(new RegExp('^' + t.substr(1) + '$')) : e.names.push(new RegExp('^' + t + '$')));
					for (n = 0; n < e.instances.length; n++) {
						var i = e.instances[n];
						i.enabled = e.enabled(i.namespace);
					}
				}),
				(e.enabled = function (t) {
					if ('*' === t[t.length - 1]) return !0;
					var n, r;
					for (n = 0, r = e.skips.length; n < r; n++) if (e.skips[n].test(t)) return !1;
					for (n = 0, r = e.names.length; n < r; n++) if (e.names[n].test(t)) return !0;
					return !1;
				}),
				(e.humanize = n(10)),
				(e.instances = []),
				(e.names = []),
				(e.skips = []),
				(e.formatters = {});
		},
		function (t, e) {
			function n(t) {
				return r(t, a, 'day') || r(t, s, 'hour') || r(t, i, 'minute') || r(t, o, 'second') || t + ' ms';
			}
			function r(t, e, n) {
				if (!(t < e)) return t < 1.5 * e ? Math.floor(t / e) + ' ' + n : Math.ceil(t / e) + ' ' + n + 's';
			}
			var o = 1e3,
				i = 60 * o,
				s = 60 * i,
				a = 24 * s,
				c = 365.25 * a;
			t.exports = function (t, e) {
				e = e || {};
				var r = typeof t;
				if ('string' === r && t.length > 0)
					return (function (t) {
						if (!((t = String(t)).length > 100)) {
							var e = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);
							if (e) {
								var n = parseFloat(e[1]);
								switch ((e[2] || 'ms').toLowerCase()) {
									case 'years':
									case 'year':
									case 'yrs':
									case 'yr':
									case 'y':
										return n * c;
									case 'days':
									case 'day':
									case 'd':
										return n * a;
									case 'hours':
									case 'hour':
									case 'hrs':
									case 'hr':
									case 'h':
										return n * s;
									case 'minutes':
									case 'minute':
									case 'mins':
									case 'min':
									case 'm':
										return n * i;
									case 'seconds':
									case 'second':
									case 'secs':
									case 'sec':
									case 's':
										return n * o;
									case 'milliseconds':
									case 'millisecond':
									case 'msecs':
									case 'msec':
									case 'ms':
										return n;
									default:
										return;
								}
							}
						}
					})(t);
				if ('number' === r && !1 === isNaN(t))
					return e.long
						? n(t)
						: (function (t) {
								return t >= a ? Math.round(t / a) + 'd' : t >= s ? Math.round(t / s) + 'h' : t >= i ? Math.round(t / i) + 'm' : t >= o ? Math.round(t / o) + 's' : t + 'ms';
						  })(t);
				throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(t));
			};
		},
		function (t, e, n) {
			function r(t) {
				if (t)
					return (function (t) {
						for (var e in r.prototype) t[e] = r.prototype[e];
						return t;
					})(t);
			}
			(t.exports = r),
				(r.prototype.on = r.prototype.addEventListener =
					function (t, e) {
						return (this._callbacks = this._callbacks || {}), (this._callbacks['$' + t] = this._callbacks['$' + t] || []).push(e), this;
					}),
				(r.prototype.once = function (t, e) {
					function n() {
						this.off(t, n), e.apply(this, arguments);
					}
					return (n.fn = e), this.on(t, n), this;
				}),
				(r.prototype.off =
					r.prototype.removeListener =
					r.prototype.removeAllListeners =
					r.prototype.removeEventListener =
						function (t, e) {
							if (((this._callbacks = this._callbacks || {}), 0 == arguments.length)) return (this._callbacks = {}), this;
							var n = this._callbacks['$' + t];
							if (!n) return this;
							if (1 == arguments.length) return delete this._callbacks['$' + t], this;
							for (var r, o = 0; o < n.length; o++)
								if ((r = n[o]) === e || r.fn === e) {
									n.splice(o, 1);
									break;
								}
							return this;
						}),
				(r.prototype.emit = function (t) {
					this._callbacks = this._callbacks || {};
					var e = [].slice.call(arguments, 1),
						n = this._callbacks['$' + t];
					if (n) for (var r = 0, o = (n = n.slice(0)).length; r < o; ++r) n[r].apply(this, e);
					return this;
				}),
				(r.prototype.listeners = function (t) {
					return (this._callbacks = this._callbacks || {}), this._callbacks['$' + t] || [];
				}),
				(r.prototype.hasListeners = function (t) {
					return !!this.listeners(t).length;
				});
		},
		function (t, e, n) {
			function r(t, e) {
				if (!t) return t;
				if (s(t)) {
					var n = { _placeholder: !0, num: e.length };
					return e.push(t), n;
				}
				if (i(t)) {
					for (var o = new Array(t.length), a = 0; a < t.length; a++) o[a] = r(t[a], e);
					return o;
				}
				if ('object' == typeof t && !(t instanceof Date)) {
					o = {};
					for (var c in t) o[c] = r(t[c], e);
					return o;
				}
				return t;
			}
			function o(t, e) {
				if (!t) return t;
				if (t && t._placeholder) return e[t.num];
				if (i(t)) for (var n = 0; n < t.length; n++) t[n] = o(t[n], e);
				else if ('object' == typeof t) for (var r in t) t[r] = o(t[r], e);
				return t;
			}
			var i = n(13),
				s = n(14),
				a = Object.prototype.toString,
				c = 'function' == typeof Blob || ('undefined' != typeof Blob && '[object BlobConstructor]' === a.call(Blob)),
				u = 'function' == typeof File || ('undefined' != typeof File && '[object FileConstructor]' === a.call(File));
			(e.deconstructPacket = function (t) {
				var e = [],
					n = t.data,
					o = t;
				return (o.data = r(n, e)), (o.attachments = e.length), { packet: o, buffers: e };
			}),
				(e.reconstructPacket = function (t, e) {
					return (t.data = o(t.data, e)), (t.attachments = void 0), t;
				}),
				(e.removeBlobs = function (t, e) {
					var n = 0,
						r = t;
					(function t(o, a, p) {
						if (!o) return o;
						if ((c && o instanceof Blob) || (u && o instanceof File)) {
							n++;
							var h = new FileReader();
							(h.onload = function () {
								p ? (p[a] = this.result) : (r = this.result), --n || e(r);
							}),
								h.readAsArrayBuffer(o);
						} else if (i(o)) for (var f = 0; f < o.length; f++) t(o[f], f, o);
						else if ('object' == typeof o && !s(o)) for (var l in o) t(o[l], l, o);
					})(r),
						n || e(r);
				});
		},
		function (t, e) {
			var n = {}.toString;
			t.exports =
				Array.isArray ||
				function (t) {
					return '[object Array]' == n.call(t);
				};
		},
		function (t, e) {
			t.exports = function (t) {
				return (n && Buffer.isBuffer(t)) || (r && (t instanceof ArrayBuffer || o(t)));
			};
			var n = 'function' == typeof Buffer && 'function' == typeof Buffer.isBuffer,
				r = 'function' == typeof ArrayBuffer,
				o = function (t) {
					return 'function' == typeof ArrayBuffer.isView ? ArrayBuffer.isView(t) : t.buffer instanceof ArrayBuffer;
				};
		},
		function (t, e, n) {
			function r(t, e) {
				if (!(this instanceof r)) return new r(t, e);
				t && 'object' == typeof t && ((e = t), (t = void 0)),
					((e = e || {}).path = e.path || '/socket.io'),
					(this.nsps = {}),
					(this.subs = []),
					(this.opts = e),
					this.reconnection(!1 !== e.reconnection),
					this.reconnectionAttempts(e.reconnectionAttempts || 1 / 0),
					this.reconnectionDelay(e.reconnectionDelay || 1e3),
					this.reconnectionDelayMax(e.reconnectionDelayMax || 5e3),
					this.randomizationFactor(e.randomizationFactor || 0.5),
					(this.backoff = new f({ min: this.reconnectionDelay(), max: this.reconnectionDelayMax(), jitter: this.randomizationFactor() })),
					this.timeout(null == e.timeout ? 2e4 : e.timeout),
					(this.readyState = 'closed'),
					(this.uri = t),
					(this.connecting = []),
					(this.lastPing = null),
					(this.encoding = !1),
					(this.packetBuffer = []);
				var n = e.parser || a;
				(this.encoder = new n.Encoder()), (this.decoder = new n.Decoder()), (this.autoConnect = !1 !== e.autoConnect), this.autoConnect && this.open();
			}
			var o = n(16),
				i = n(39),
				s = n(11),
				a = n(7),
				c = n(41),
				u = n(42),
				p = n(3)('socket.io-client:manager'),
				h = n(38),
				f = n(43),
				l = Object.prototype.hasOwnProperty;
			(t.exports = r),
				(r.prototype.emitAll = function () {
					for (var t in (this.emit.apply(this, arguments), this.nsps)) l.call(this.nsps, t) && this.nsps[t].emit.apply(this.nsps[t], arguments);
				}),
				(r.prototype.updateSocketIds = function () {
					for (var t in this.nsps) l.call(this.nsps, t) && (this.nsps[t].id = this.generateId(t));
				}),
				(r.prototype.generateId = function (t) {
					return ('/' === t ? '' : t + '#') + this.engine.id;
				}),
				s(r.prototype),
				(r.prototype.reconnection = function (t) {
					return arguments.length ? ((this._reconnection = !!t), this) : this._reconnection;
				}),
				(r.prototype.reconnectionAttempts = function (t) {
					return arguments.length ? ((this._reconnectionAttempts = t), this) : this._reconnectionAttempts;
				}),
				(r.prototype.reconnectionDelay = function (t) {
					return arguments.length ? ((this._reconnectionDelay = t), this.backoff && this.backoff.setMin(t), this) : this._reconnectionDelay;
				}),
				(r.prototype.randomizationFactor = function (t) {
					return arguments.length ? ((this._randomizationFactor = t), this.backoff && this.backoff.setJitter(t), this) : this._randomizationFactor;
				}),
				(r.prototype.reconnectionDelayMax = function (t) {
					return arguments.length ? ((this._reconnectionDelayMax = t), this.backoff && this.backoff.setMax(t), this) : this._reconnectionDelayMax;
				}),
				(r.prototype.timeout = function (t) {
					return arguments.length ? ((this._timeout = t), this) : this._timeout;
				}),
				(r.prototype.maybeReconnectOnOpen = function () {
					!this.reconnecting && this._reconnection && 0 === this.backoff.attempts && this.reconnect();
				}),
				(r.prototype.open = r.prototype.connect =
					function (t, e) {
						if ((p('readyState %s', this.readyState), ~this.readyState.indexOf('open'))) return this;
						p('opening %s', this.uri), (this.engine = o(this.uri, this.opts));
						var n = this.engine,
							r = this;
						(this.readyState = 'opening'), (this.skipReconnect = !1);
						var i = c(n, 'open', function () {
								r.onopen(), t && t();
							}),
							s = c(n, 'error', function (e) {
								if ((p('connect_error'), r.cleanup(), (r.readyState = 'closed'), r.emitAll('connect_error', e), t)) {
									var n = new Error('Connection error');
									(n.data = e), t(n);
								} else r.maybeReconnectOnOpen();
							});
						if (!1 !== this._timeout) {
							var a = this._timeout;
							p('connect attempt will timeout after %d', a);
							var u = setTimeout(function () {
								p('connect attempt timed out after %d', a), i.destroy(), n.close(), n.emit('error', 'timeout'), r.emitAll('connect_timeout', a);
							}, a);
							this.subs.push({
								destroy: function () {
									clearTimeout(u);
								}
							});
						}
						return this.subs.push(i), this.subs.push(s), this;
					}),
				(r.prototype.onopen = function () {
					p('open'), this.cleanup(), (this.readyState = 'open'), this.emit('open');
					var t = this.engine;
					this.subs.push(c(t, 'data', u(this, 'ondata'))),
						this.subs.push(c(t, 'ping', u(this, 'onping'))),
						this.subs.push(c(t, 'pong', u(this, 'onpong'))),
						this.subs.push(c(t, 'error', u(this, 'onerror'))),
						this.subs.push(c(t, 'close', u(this, 'onclose'))),
						this.subs.push(c(this.decoder, 'decoded', u(this, 'ondecoded')));
				}),
				(r.prototype.onping = function () {
					(this.lastPing = new Date()), this.emitAll('ping');
				}),
				(r.prototype.onpong = function () {
					this.emitAll('pong', new Date() - this.lastPing);
				}),
				(r.prototype.ondata = function (t) {
					this.decoder.add(t);
				}),
				(r.prototype.ondecoded = function (t) {
					this.emit('packet', t);
				}),
				(r.prototype.onerror = function (t) {
					p('error', t), this.emitAll('error', t);
				}),
				(r.prototype.socket = function (t, e) {
					function n() {
						~h(o.connecting, r) || o.connecting.push(r);
					}
					var r = this.nsps[t];
					if (!r) {
						(r = new i(this, t, e)), (this.nsps[t] = r);
						var o = this;
						r.on('connecting', n),
							r.on('connect', function () {
								r.id = o.generateId(t);
							}),
							this.autoConnect && n();
					}
					return r;
				}),
				(r.prototype.destroy = function (t) {
					var e = h(this.connecting, t);
					~e && this.connecting.splice(e, 1), this.connecting.length || this.close();
				}),
				(r.prototype.packet = function (t) {
					p('writing packet %j', t);
					var e = this;
					t.query && 0 === t.type && (t.nsp += '?' + t.query),
						e.encoding
							? e.packetBuffer.push(t)
							: ((e.encoding = !0),
							  this.encoder.encode(t, function (n) {
									for (var r = 0; r < n.length; r++) e.engine.write(n[r], t.options);
									(e.encoding = !1), e.processPacketQueue();
							  }));
				}),
				(r.prototype.processPacketQueue = function () {
					if (this.packetBuffer.length > 0 && !this.encoding) {
						var t = this.packetBuffer.shift();
						this.packet(t);
					}
				}),
				(r.prototype.cleanup = function () {
					p('cleanup');
					for (var t = this.subs.length, e = 0; e < t; e++) {
						this.subs.shift().destroy();
					}
					(this.packetBuffer = []), (this.encoding = !1), (this.lastPing = null), this.decoder.destroy();
				}),
				(r.prototype.close = r.prototype.disconnect =
					function () {
						p('disconnect'),
							(this.skipReconnect = !0),
							(this.reconnecting = !1),
							'opening' === this.readyState && this.cleanup(),
							this.backoff.reset(),
							(this.readyState = 'closed'),
							this.engine && this.engine.close();
					}),
				(r.prototype.onclose = function (t) {
					p('onclose'), this.cleanup(), this.backoff.reset(), (this.readyState = 'closed'), this.emit('close', t), this._reconnection && !this.skipReconnect && this.reconnect();
				}),
				(r.prototype.reconnect = function () {
					if (this.reconnecting || this.skipReconnect) return this;
					var t = this;
					if (this.backoff.attempts >= this._reconnectionAttempts) p('reconnect failed'), this.backoff.reset(), this.emitAll('reconnect_failed'), (this.reconnecting = !1);
					else {
						var e = this.backoff.duration();
						p('will wait %dms before reconnect attempt', e), (this.reconnecting = !0);
						var n = setTimeout(function () {
							t.skipReconnect ||
								(p('attempting reconnect'),
								t.emitAll('reconnect_attempt', t.backoff.attempts),
								t.emitAll('reconnecting', t.backoff.attempts),
								t.skipReconnect ||
									t.open(function (e) {
										e ? (p('reconnect attempt error'), (t.reconnecting = !1), t.reconnect(), t.emitAll('reconnect_error', e.data)) : (p('reconnect success'), t.onreconnect());
									}));
						}, e);
						this.subs.push({
							destroy: function () {
								clearTimeout(n);
							}
						});
					}
				}),
				(r.prototype.onreconnect = function () {
					var t = this.backoff.attempts;
					(this.reconnecting = !1), this.backoff.reset(), this.updateSocketIds(), this.emitAll('reconnect', t);
				});
		},
		function (t, e, n) {
			(t.exports = n(17)), (t.exports.parser = n(24));
		},
		function (t, e, n) {
			function r(t, e) {
				return this instanceof r
					? ((e = e || {}),
					  t && 'object' == typeof t && ((e = t), (t = null)),
					  t
							? ((t = u(t)), (e.hostname = t.host), (e.secure = 'https' === t.protocol || 'wss' === t.protocol), (e.port = t.port), t.query && (e.query = t.query))
							: e.host && (e.hostname = u(e.host).host),
					  (this.secure = null != e.secure ? e.secure : 'undefined' != typeof location && 'https:' === location.protocol),
					  e.hostname && !e.port && (e.port = this.secure ? '443' : '80'),
					  (this.agent = e.agent || !1),
					  (this.hostname = e.hostname || ('undefined' != typeof location ? location.hostname : 'localhost')),
					  (this.port = e.port || ('undefined' != typeof location && location.port ? location.port : this.secure ? 443 : 80)),
					  (this.query = e.query || {}),
					  'string' == typeof this.query && (this.query = p.decode(this.query)),
					  (this.upgrade = !1 !== e.upgrade),
					  (this.path = (e.path || '/engine.io').replace(/\/$/, '') + '/'),
					  (this.forceJSONP = !!e.forceJSONP),
					  (this.jsonp = !1 !== e.jsonp),
					  (this.forceBase64 = !!e.forceBase64),
					  (this.enablesXDR = !!e.enablesXDR),
					  (this.withCredentials = !1 !== e.withCredentials),
					  (this.timestampParam = e.timestampParam || 't'),
					  (this.timestampRequests = e.timestampRequests),
					  (this.transports = e.transports || ['polling', 'websocket']),
					  (this.transportOptions = e.transportOptions || {}),
					  (this.readyState = ''),
					  (this.writeBuffer = []),
					  (this.prevBufferLen = 0),
					  (this.policyPort = e.policyPort || 843),
					  (this.rememberUpgrade = e.rememberUpgrade || !1),
					  (this.binaryType = null),
					  (this.onlyBinaryUpgrades = e.onlyBinaryUpgrades),
					  (this.perMessageDeflate = !1 !== e.perMessageDeflate && (e.perMessageDeflate || {})),
					  !0 === this.perMessageDeflate && (this.perMessageDeflate = {}),
					  this.perMessageDeflate && null == this.perMessageDeflate.threshold && (this.perMessageDeflate.threshold = 1024),
					  (this.pfx = e.pfx || null),
					  (this.key = e.key || null),
					  (this.passphrase = e.passphrase || null),
					  (this.cert = e.cert || null),
					  (this.ca = e.ca || null),
					  (this.ciphers = e.ciphers || null),
					  (this.rejectUnauthorized = void 0 === e.rejectUnauthorized || e.rejectUnauthorized),
					  (this.forceNode = !!e.forceNode),
					  (this.isReactNative = 'undefined' != typeof navigator && 'string' == typeof navigator.product && 'reactnative' === navigator.product.toLowerCase()),
					  ('undefined' == typeof self || this.isReactNative) &&
							(e.extraHeaders && Object.keys(e.extraHeaders).length > 0 && (this.extraHeaders = e.extraHeaders), e.localAddress && (this.localAddress = e.localAddress)),
					  (this.id = null),
					  (this.upgrades = null),
					  (this.pingInterval = null),
					  (this.pingTimeout = null),
					  (this.pingIntervalTimer = null),
					  (this.pingTimeoutTimer = null),
					  void this.open())
					: new r(t, e);
			}
			var o = n(18),
				i = n(11),
				s = n(3)('engine.io-client:socket'),
				a = n(38),
				c = n(24),
				u = n(2),
				p = n(32);
			(t.exports = r),
				(r.priorWebsocketSuccess = !1),
				i(r.prototype),
				(r.protocol = c.protocol),
				(r.Socket = r),
				(r.Transport = n(23)),
				(r.transports = n(18)),
				(r.parser = n(24)),
				(r.prototype.createTransport = function (t) {
					s('creating transport "%s"', t);
					var e = (function (t) {
						var e = {};
						for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]);
						return e;
					})(this.query);
					(e.EIO = c.protocol), (e.transport = t);
					var n = this.transportOptions[t] || {};
					return (
						this.id && (e.sid = this.id),
						new o[t]({
							query: e,
							socket: this,
							agent: n.agent || this.agent,
							hostname: n.hostname || this.hostname,
							port: n.port || this.port,
							secure: n.secure || this.secure,
							path: n.path || this.path,
							forceJSONP: n.forceJSONP || this.forceJSONP,
							jsonp: n.jsonp || this.jsonp,
							forceBase64: n.forceBase64 || this.forceBase64,
							enablesXDR: n.enablesXDR || this.enablesXDR,
							withCredentials: n.withCredentials || this.withCredentials,
							timestampRequests: n.timestampRequests || this.timestampRequests,
							timestampParam: n.timestampParam || this.timestampParam,
							policyPort: n.policyPort || this.policyPort,
							pfx: n.pfx || this.pfx,
							key: n.key || this.key,
							passphrase: n.passphrase || this.passphrase,
							cert: n.cert || this.cert,
							ca: n.ca || this.ca,
							ciphers: n.ciphers || this.ciphers,
							rejectUnauthorized: n.rejectUnauthorized || this.rejectUnauthorized,
							perMessageDeflate: n.perMessageDeflate || this.perMessageDeflate,
							extraHeaders: n.extraHeaders || this.extraHeaders,
							forceNode: n.forceNode || this.forceNode,
							localAddress: n.localAddress || this.localAddress,
							requestTimeout: n.requestTimeout || this.requestTimeout,
							protocols: n.protocols || void 0,
							isReactNative: this.isReactNative
						})
					);
				}),
				(r.prototype.open = function () {
					var t;
					if (this.rememberUpgrade && r.priorWebsocketSuccess && -1 !== this.transports.indexOf('websocket')) t = 'websocket';
					else {
						if (0 === this.transports.length) {
							var e = this;
							return void setTimeout(function () {
								e.emit('error', 'No transports available');
							}, 0);
						}
						t = this.transports[0];
					}
					this.readyState = 'opening';
					try {
						t = this.createTransport(t);
					} catch (n) {
						return this.transports.shift(), void this.open();
					}
					t.open(), this.setTransport(t);
				}),
				(r.prototype.setTransport = function (t) {
					s('setting transport %s', t.name);
					var e = this;
					this.transport && (s('clearing existing transport %s', this.transport.name), this.transport.removeAllListeners()),
						(this.transport = t),
						t
							.on('drain', function () {
								e.onDrain();
							})
							.on('packet', function (t) {
								e.onPacket(t);
							})
							.on('error', function (t) {
								e.onError(t);
							})
							.on('close', function () {
								e.onClose('transport close');
							});
				}),
				(r.prototype.probe = function (t) {
					function e() {
						if (f.onlyBinaryUpgrades) {
							var e = !this.supportsBinary && f.transport.supportsBinary;
							h = h || e;
						}
						h ||
							(s('probe transport "%s" opened', t),
							p.send([{ type: 'ping', data: 'probe' }]),
							p.once('packet', function (e) {
								if (!h)
									if ('pong' === e.type && 'probe' === e.data) {
										if ((s('probe transport "%s" pong', t), (f.upgrading = !0), f.emit('upgrading', p), !p)) return;
										(r.priorWebsocketSuccess = 'websocket' === p.name),
											s('pausing current transport "%s"', f.transport.name),
											f.transport.pause(function () {
												h ||
													('closed' !== f.readyState &&
														(s('changing transport and sending upgrade packet'),
														u(),
														f.setTransport(p),
														p.send([{ type: 'upgrade' }]),
														f.emit('upgrade', p),
														(p = null),
														(f.upgrading = !1),
														f.flush()));
											});
									} else {
										s('probe transport "%s" failed', t);
										var n = new Error('probe error');
										(n.transport = p.name), f.emit('upgradeError', n);
									}
							}));
					}
					function n() {
						h || ((h = !0), u(), p.close(), (p = null));
					}
					function o(e) {
						var r = new Error('probe error: ' + e);
						(r.transport = p.name), n(), s('probe transport "%s" failed because of error: %s', t, e), f.emit('upgradeError', r);
					}
					function i() {
						o('transport closed');
					}
					function a() {
						o('socket closed');
					}
					function c(t) {
						p && t.name !== p.name && (s('"%s" works - aborting "%s"', t.name, p.name), n());
					}
					function u() {
						p.removeListener('open', e), p.removeListener('error', o), p.removeListener('close', i), f.removeListener('close', a), f.removeListener('upgrading', c);
					}
					s('probing transport "%s"', t);
					var p = this.createTransport(t, { probe: 1 }),
						h = !1,
						f = this;
					(r.priorWebsocketSuccess = !1), p.once('open', e), p.once('error', o), p.once('close', i), this.once('close', a), this.once('upgrading', c), p.open();
				}),
				(r.prototype.onOpen = function () {
					if (
						(s('socket open'),
						(this.readyState = 'open'),
						(r.priorWebsocketSuccess = 'websocket' === this.transport.name),
						this.emit('open'),
						this.flush(),
						'open' === this.readyState && this.upgrade && this.transport.pause)
					) {
						s('starting upgrade probes');
						for (var t = 0, e = this.upgrades.length; t < e; t++) this.probe(this.upgrades[t]);
					}
				}),
				(r.prototype.onPacket = function (t) {
					if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState)
						switch ((s('socket receive: type "%s", data "%s"', t.type, t.data), this.emit('packet', t), this.emit('heartbeat'), t.type)) {
							case 'open':
								this.onHandshake(JSON.parse(t.data));
								break;
							case 'pong':
								this.setPing(), this.emit('pong');
								break;
							case 'error':
								var e = new Error('server error');
								(e.code = t.data), this.onError(e);
								break;
							case 'message':
								this.emit('data', t.data), this.emit('message', t.data);
						}
					else s('packet received with socket readyState "%s"', this.readyState);
				}),
				(r.prototype.onHandshake = function (t) {
					this.emit('handshake', t),
						(this.id = t.sid),
						(this.transport.query.sid = t.sid),
						(this.upgrades = this.filterUpgrades(t.upgrades)),
						(this.pingInterval = t.pingInterval),
						(this.pingTimeout = t.pingTimeout),
						this.onOpen(),
						'closed' !== this.readyState && (this.setPing(), this.removeListener('heartbeat', this.onHeartbeat), this.on('heartbeat', this.onHeartbeat));
				}),
				(r.prototype.onHeartbeat = function (t) {
					clearTimeout(this.pingTimeoutTimer);
					var e = this;
					e.pingTimeoutTimer = setTimeout(function () {
						'closed' !== e.readyState && e.onClose('ping timeout');
					}, t || e.pingInterval + e.pingTimeout);
				}),
				(r.prototype.setPing = function () {
					var t = this;
					clearTimeout(t.pingIntervalTimer),
						(t.pingIntervalTimer = setTimeout(function () {
							s('writing ping packet - expecting pong within %sms', t.pingTimeout), t.ping(), t.onHeartbeat(t.pingTimeout);
						}, t.pingInterval));
				}),
				(r.prototype.ping = function () {
					var t = this;
					this.sendPacket('ping', function () {
						t.emit('ping');
					});
				}),
				(r.prototype.onDrain = function () {
					this.writeBuffer.splice(0, this.prevBufferLen), (this.prevBufferLen = 0), 0 === this.writeBuffer.length ? this.emit('drain') : this.flush();
				}),
				(r.prototype.flush = function () {
					'closed' !== this.readyState &&
						this.transport.writable &&
						!this.upgrading &&
						this.writeBuffer.length &&
						(s('flushing %d packets in socket', this.writeBuffer.length), this.transport.send(this.writeBuffer), (this.prevBufferLen = this.writeBuffer.length), this.emit('flush'));
				}),
				(r.prototype.write = r.prototype.send =
					function (t, e, n) {
						return this.sendPacket('message', t, e, n), this;
					}),
				(r.prototype.sendPacket = function (t, e, n, r) {
					if (('function' == typeof e && ((r = e), (e = void 0)), 'function' == typeof n && ((r = n), (n = null)), 'closing' !== this.readyState && 'closed' !== this.readyState)) {
						(n = n || {}).compress = !1 !== n.compress;
						var o = { type: t, data: e, options: n };
						this.emit('packetCreate', o), this.writeBuffer.push(o), r && this.once('flush', r), this.flush();
					}
				}),
				(r.prototype.close = function () {
					function t() {
						r.onClose('forced close'), s('socket closing - telling transport to close'), r.transport.close();
					}
					function e() {
						r.removeListener('upgrade', e), r.removeListener('upgradeError', e), t();
					}
					function n() {
						r.once('upgrade', e), r.once('upgradeError', e);
					}
					if ('opening' === this.readyState || 'open' === this.readyState) {
						this.readyState = 'closing';
						var r = this;
						this.writeBuffer.length
							? this.once('drain', function () {
									this.upgrading ? n() : t();
							  })
							: this.upgrading
							? n()
							: t();
					}
					return this;
				}),
				(r.prototype.onError = function (t) {
					s('socket error %j', t), (r.priorWebsocketSuccess = !1), this.emit('error', t), this.onClose('transport error', t);
				}),
				(r.prototype.onClose = function (t, e) {
					if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {
						s('socket close with reason: "%s"', t);
						clearTimeout(this.pingIntervalTimer),
							clearTimeout(this.pingTimeoutTimer),
							this.transport.removeAllListeners('close'),
							this.transport.close(),
							this.transport.removeAllListeners(),
							(this.readyState = 'closed'),
							(this.id = null),
							this.emit('close', t, e),
							(this.writeBuffer = []),
							(this.prevBufferLen = 0);
					}
				}),
				(r.prototype.filterUpgrades = function (t) {
					for (var e = [], n = 0, r = t.length; n < r; n++) ~a(this.transports, t[n]) && e.push(t[n]);
					return e;
				});
		},
		function (t, e, n) {
			var r = n(19),
				o = n(21),
				i = n(35),
				s = n(36);
			(e.polling = function (t) {
				var e = !1,
					n = !1,
					s = !1 !== t.jsonp;
				if ('undefined' != typeof location) {
					var a = 'https:' === location.protocol,
						c = location.port;
					c || (c = a ? 443 : 80), (e = t.hostname !== location.hostname || c !== t.port), (n = t.secure !== a);
				}
				if (((t.xdomain = e), (t.xscheme = n), 'open' in new r(t) && !t.forceJSONP)) return new o(t);
				if (!s) throw new Error('JSONP disabled');
				return new i(t);
			}),
				(e.websocket = s);
		},
		function (t, e, n) {
			var r = n(20);
			t.exports = function (t) {
				var e = t.xdomain,
					n = t.xscheme,
					o = t.enablesXDR;
				try {
					if ('undefined' != typeof XMLHttpRequest && (!e || r)) return new XMLHttpRequest();
				} catch (i) {}
				try {
					if ('undefined' != typeof XDomainRequest && !n && o) return new XDomainRequest();
				} catch (i) {}
				if (!e)
					try {
						return new self[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');
					} catch (i) {}
			};
		},
		function (t, e) {
			try {
				t.exports = 'undefined' != typeof XMLHttpRequest && 'withCredentials' in new XMLHttpRequest();
			} catch (n) {
				t.exports = !1;
			}
		},
		function (t, e, n) {
			function r() {}
			function o(t) {
				if ((c.call(this, t), (this.requestTimeout = t.requestTimeout), (this.extraHeaders = t.extraHeaders), 'undefined' != typeof location)) {
					var e = 'https:' === location.protocol,
						n = location.port;
					n || (n = e ? 443 : 80), (this.xd = ('undefined' != typeof location && t.hostname !== location.hostname) || n !== t.port), (this.xs = t.secure !== e);
				}
			}
			function i(t) {
				(this.method = t.method || 'GET'),
					(this.uri = t.uri),
					(this.xd = !!t.xd),
					(this.xs = !!t.xs),
					(this.async = !1 !== t.async),
					(this.data = void 0 !== t.data ? t.data : null),
					(this.agent = t.agent),
					(this.isBinary = t.isBinary),
					(this.supportsBinary = t.supportsBinary),
					(this.enablesXDR = t.enablesXDR),
					(this.withCredentials = t.withCredentials),
					(this.requestTimeout = t.requestTimeout),
					(this.pfx = t.pfx),
					(this.key = t.key),
					(this.passphrase = t.passphrase),
					(this.cert = t.cert),
					(this.ca = t.ca),
					(this.ciphers = t.ciphers),
					(this.rejectUnauthorized = t.rejectUnauthorized),
					(this.extraHeaders = t.extraHeaders),
					this.create();
			}
			function s() {
				for (var t in i.requests) i.requests.hasOwnProperty(t) && i.requests[t].abort();
			}
			var a = n(19),
				c = n(22),
				u = n(11),
				p = n(33),
				h = n(3)('engine.io-client:polling-xhr');
			if (
				((t.exports = o),
				(t.exports.Request = i),
				p(o, c),
				(o.prototype.supportsBinary = !0),
				(o.prototype.request = function (t) {
					return (
						((t = t || {}).uri = this.uri()),
						(t.xd = this.xd),
						(t.xs = this.xs),
						(t.agent = this.agent || !1),
						(t.supportsBinary = this.supportsBinary),
						(t.enablesXDR = this.enablesXDR),
						(t.withCredentials = this.withCredentials),
						(t.pfx = this.pfx),
						(t.key = this.key),
						(t.passphrase = this.passphrase),
						(t.cert = this.cert),
						(t.ca = this.ca),
						(t.ciphers = this.ciphers),
						(t.rejectUnauthorized = this.rejectUnauthorized),
						(t.requestTimeout = this.requestTimeout),
						(t.extraHeaders = this.extraHeaders),
						new i(t)
					);
				}),
				(o.prototype.doWrite = function (t, e) {
					var n = 'string' != typeof t && void 0 !== t,
						r = this.request({ method: 'POST', data: t, isBinary: n }),
						o = this;
					r.on('success', e),
						r.on('error', function (t) {
							o.onError('xhr post error', t);
						}),
						(this.sendXhr = r);
				}),
				(o.prototype.doPoll = function () {
					h('xhr poll');
					var t = this.request(),
						e = this;
					t.on('data', function (t) {
						e.onData(t);
					}),
						t.on('error', function (t) {
							e.onError('xhr poll error', t);
						}),
						(this.pollXhr = t);
				}),
				u(i.prototype),
				(i.prototype.create = function () {
					var t = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };
					(t.pfx = this.pfx),
						(t.key = this.key),
						(t.passphrase = this.passphrase),
						(t.cert = this.cert),
						(t.ca = this.ca),
						(t.ciphers = this.ciphers),
						(t.rejectUnauthorized = this.rejectUnauthorized);
					var e = (this.xhr = new a(t)),
						n = this;
					try {
						h('xhr open %s: %s', this.method, this.uri), e.open(this.method, this.uri, this.async);
						try {
							if (this.extraHeaders)
								for (var r in (e.setDisableHeaderCheck && e.setDisableHeaderCheck(!0), this.extraHeaders))
									this.extraHeaders.hasOwnProperty(r) && e.setRequestHeader(r, this.extraHeaders[r]);
						} catch (o) {}
						if ('POST' === this.method)
							try {
								this.isBinary ? e.setRequestHeader('Content-type', 'application/octet-stream') : e.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');
							} catch (o) {}
						try {
							e.setRequestHeader('Accept', '*/*');
						} catch (o) {}
						'withCredentials' in e && (e.withCredentials = this.withCredentials),
							this.requestTimeout && (e.timeout = this.requestTimeout),
							this.hasXDR()
								? ((e.onload = function () {
										n.onLoad();
								  }),
								  (e.onerror = function () {
										n.onError(e.responseText);
								  }))
								: (e.onreadystatechange = function () {
										if (2 === e.readyState)
											try {
												var t = e.getResponseHeader('Content-Type');
												((n.supportsBinary && 'application/octet-stream' === t) || 'application/octet-stream; charset=UTF-8' === t) && (e.responseType = 'arraybuffer');
											} catch (r) {}
										4 === e.readyState &&
											(200 === e.status || 1223 === e.status
												? n.onLoad()
												: setTimeout(function () {
														n.onError('number' == typeof e.status ? e.status : 0);
												  }, 0));
								  }),
							h('xhr data %s', this.data),
							e.send(this.data);
					} catch (o) {
						return void setTimeout(function () {
							n.onError(o);
						}, 0);
					}
					'undefined' != typeof document && ((this.index = i.requestsCount++), (i.requests[this.index] = this));
				}),
				(i.prototype.onSuccess = function () {
					this.emit('success'), this.cleanup();
				}),
				(i.prototype.onData = function (t) {
					this.emit('data', t), this.onSuccess();
				}),
				(i.prototype.onError = function (t) {
					this.emit('error', t), this.cleanup(!0);
				}),
				(i.prototype.cleanup = function (t) {
					if ('undefined' != typeof this.xhr && null !== this.xhr) {
						if ((this.hasXDR() ? (this.xhr.onload = this.xhr.onerror = r) : (this.xhr.onreadystatechange = r), t))
							try {
								this.xhr.abort();
							} catch (e) {}
						'undefined' != typeof document && delete i.requests[this.index], (this.xhr = null);
					}
				}),
				(i.prototype.onLoad = function () {
					var t;
					try {
						var e;
						try {
							e = this.xhr.getResponseHeader('Content-Type');
						} catch (n) {}
						t = (('application/octet-stream' === e || 'application/octet-stream; charset=UTF-8' === e) && this.xhr.response) || this.xhr.responseText;
					} catch (n) {
						this.onError(n);
					}
					null != t && this.onData(t);
				}),
				(i.prototype.hasXDR = function () {
					return 'undefined' != typeof XDomainRequest && !this.xs && this.enablesXDR;
				}),
				(i.prototype.abort = function () {
					this.cleanup();
				}),
				(i.requestsCount = 0),
				(i.requests = {}),
				'undefined' != typeof document)
			)
				if ('function' == typeof attachEvent) attachEvent('onunload', s);
				else if ('function' == typeof addEventListener) {
					var f = 'onpagehide' in self ? 'pagehide' : 'unload';
					addEventListener(f, s, !1);
				}
		},
		function (t, e, n) {
			function r(t) {
				var e = t && t.forceBase64;
				(p && !e) || (this.supportsBinary = !1), o.call(this, t);
			}
			var o = n(23),
				i = n(32),
				s = n(24),
				a = n(33),
				c = n(34),
				u = n(3)('engine.io-client:polling');
			t.exports = r;
			var p = null != new (n(19))({ xdomain: !1 }).responseType;
			a(r, o),
				(r.prototype.name = 'polling'),
				(r.prototype.doOpen = function () {
					this.poll();
				}),
				(r.prototype.pause = function (t) {
					function e() {
						u('paused'), (n.readyState = 'paused'), t();
					}
					var n = this;
					if (((this.readyState = 'pausing'), this.polling || !this.writable)) {
						var r = 0;
						this.polling &&
							(u('we are currently polling - waiting to pause'),
							r++,
							this.once('pollComplete', function () {
								u('pre-pause polling complete'), --r || e();
							})),
							this.writable ||
								(u('we are currently writing - waiting to pause'),
								r++,
								this.once('drain', function () {
									u('pre-pause writing complete'), --r || e();
								}));
					} else e();
				}),
				(r.prototype.poll = function () {
					u('polling'), (this.polling = !0), this.doPoll(), this.emit('poll');
				}),
				(r.prototype.onData = function (t) {
					var e = this;
					u('polling got data %s', t);
					s.decodePayload(t, this.socket.binaryType, function (t, n, r) {
						return 'opening' === e.readyState && e.onOpen(), 'close' === t.type ? (e.onClose(), !1) : void e.onPacket(t);
					}),
						'closed' !== this.readyState &&
							((this.polling = !1), this.emit('pollComplete'), 'open' === this.readyState ? this.poll() : u('ignoring poll - transport state "%s"', this.readyState));
				}),
				(r.prototype.doClose = function () {
					function t() {
						u('writing close packet'), e.write([{ type: 'close' }]);
					}
					var e = this;
					'open' === this.readyState ? (u('transport open - closing'), t()) : (u('transport not open - deferring close'), this.once('open', t));
				}),
				(r.prototype.write = function (t) {
					var e = this;
					this.writable = !1;
					var n = function () {
						(e.writable = !0), e.emit('drain');
					};
					s.encodePayload(t, this.supportsBinary, function (t) {
						e.doWrite(t, n);
					});
				}),
				(r.prototype.uri = function () {
					var t = this.query || {},
						e = this.secure ? 'https' : 'http',
						n = '';
					return (
						!1 !== this.timestampRequests && (t[this.timestampParam] = c()),
						this.supportsBinary || t.sid || (t.b64 = 1),
						(t = i.encode(t)),
						this.port && (('https' === e && 443 !== Number(this.port)) || ('http' === e && 80 !== Number(this.port))) && (n = ':' + this.port),
						t.length && (t = '?' + t),
						e + '://' + (-1 !== this.hostname.indexOf(':') ? '[' + this.hostname + ']' : this.hostname) + n + this.path + t
					);
				});
		},
		function (t, e, n) {
			function r(t) {
				(this.path = t.path),
					(this.hostname = t.hostname),
					(this.port = t.port),
					(this.secure = t.secure),
					(this.query = t.query),
					(this.timestampParam = t.timestampParam),
					(this.timestampRequests = t.timestampRequests),
					(this.readyState = ''),
					(this.agent = t.agent || !1),
					(this.socket = t.socket),
					(this.enablesXDR = t.enablesXDR),
					(this.withCredentials = t.withCredentials),
					(this.pfx = t.pfx),
					(this.key = t.key),
					(this.passphrase = t.passphrase),
					(this.cert = t.cert),
					(this.ca = t.ca),
					(this.ciphers = t.ciphers),
					(this.rejectUnauthorized = t.rejectUnauthorized),
					(this.forceNode = t.forceNode),
					(this.isReactNative = t.isReactNative),
					(this.extraHeaders = t.extraHeaders),
					(this.localAddress = t.localAddress);
			}
			var o = n(24),
				i = n(11);
			(t.exports = r),
				i(r.prototype),
				(r.prototype.onError = function (t, e) {
					var n = new Error(t);
					return (n.type = 'TransportError'), (n.description = e), this.emit('error', n), this;
				}),
				(r.prototype.open = function () {
					return ('closed' !== this.readyState && '' !== this.readyState) || ((this.readyState = 'opening'), this.doOpen()), this;
				}),
				(r.prototype.close = function () {
					return ('opening' !== this.readyState && 'open' !== this.readyState) || (this.doClose(), this.onClose()), this;
				}),
				(r.prototype.send = function (t) {
					if ('open' !== this.readyState) throw new Error('Transport not open');
					this.write(t);
				}),
				(r.prototype.onOpen = function () {
					(this.readyState = 'open'), (this.writable = !0), this.emit('open');
				}),
				(r.prototype.onData = function (t) {
					var e = o.decodePacket(t, this.socket.binaryType);
					this.onPacket(e);
				}),
				(r.prototype.onPacket = function (t) {
					this.emit('packet', t);
				}),
				(r.prototype.onClose = function () {
					(this.readyState = 'closed'), this.emit('close');
				});
		},
		function (t, e, n) {
			function r(t, n) {
				return n('b' + e.packets[t.type] + t.data.data);
			}
			function o(t, n, r) {
				if (!n) return e.encodeBase64Packet(t, r);
				var o = t.data,
					i = new Uint8Array(o),
					s = new Uint8Array(1 + o.byteLength);
				s[0] = m[t.type];
				for (var a = 0; a < i.length; a++) s[a + 1] = i[a];
				return r(s.buffer);
			}
			function i(t, n, r) {
				if (!n) return e.encodeBase64Packet(t, r);
				if (y)
					return (function (t, n, r) {
						if (!n) return e.encodeBase64Packet(t, r);
						var o = new FileReader();
						return (
							(o.onload = function () {
								e.encodePacket({ type: t.type, data: o.result }, n, !0, r);
							}),
							o.readAsArrayBuffer(t.data)
						);
					})(t, n, r);
				var o = new Uint8Array(1);
				return (o[0] = m[t.type]), r(new b([o.buffer, t.data]));
			}
			function s(t, e, n) {
				for (
					var r = new Array(t.length),
						o = h(t.length, n),
						i = function (t, n, o) {
							e(n, function (e, n) {
								(r[t] = n), o(e, r);
							});
						},
						s = 0;
					s < t.length;
					s++
				)
					i(s, t[s], o);
			}
			var a,
				c = n(25),
				u = n(26),
				p = n(27),
				h = n(28),
				f = n(29);
			'undefined' != typeof ArrayBuffer && (a = n(30));
			var l = 'undefined' != typeof navigator && /Android/i.test(navigator.userAgent),
				d = 'undefined' != typeof navigator && /PhantomJS/i.test(navigator.userAgent),
				y = l || d;
			e.protocol = 3;
			var m = (e.packets = { open: 0, close: 1, ping: 2, pong: 3, message: 4, upgrade: 5, noop: 6 }),
				g = c(m),
				v = { type: 'error', data: 'parser error' },
				b = n(31);
			(e.encodePacket = function (t, e, n, s) {
				'function' == typeof e && ((s = e), (e = !1)), 'function' == typeof n && ((s = n), (n = null));
				var a = void 0 === t.data ? void 0 : t.data.buffer || t.data;
				if ('undefined' != typeof ArrayBuffer && a instanceof ArrayBuffer) return o(t, e, s);
				if ('undefined' != typeof b && a instanceof b) return i(t, e, s);
				if (a && a.base64) return r(t, s);
				var c = m[t.type];
				return void 0 !== t.data && (c += n ? f.encode(String(t.data), { strict: !1 }) : String(t.data)), s('' + c);
			}),
				(e.encodeBase64Packet = function (t, n) {
					var r,
						o = 'b' + e.packets[t.type];
					if ('undefined' != typeof b && t.data instanceof b) {
						var s = new FileReader();
						return (
							(s.onload = function () {
								var t = s.result.split(',')[1];
								n(o + t);
							}),
							s.readAsDataURL(t.data)
						);
					}
					try {
						r = String.fromCharCode.apply(null, new Uint8Array(t.data));
					} catch (i) {
						for (var a = new Uint8Array(t.data), c = new Array(a.length), u = 0; u < a.length; u++) c[u] = a[u];
						r = String.fromCharCode.apply(null, c);
					}
					return (o += btoa(r)), n(o);
				}),
				(e.decodePacket = function (t, n, r) {
					if (void 0 === t) return v;
					if ('string' == typeof t) {
						if ('b' === t.charAt(0)) return e.decodeBase64Packet(t.substr(1), n);
						if (
							r &&
							!1 ===
								(t = (function (t) {
									try {
										t = f.decode(t, { strict: !1 });
									} catch (e) {
										return !1;
									}
									return t;
								})(t))
						)
							return v;
						var o = t.charAt(0);
						return Number(o) == o && g[o] ? (t.length > 1 ? { type: g[o], data: t.substring(1) } : { type: g[o] }) : v;
					}
					o = new Uint8Array(t)[0];
					var i = p(t, 1);
					return b && 'blob' === n && (i = new b([i])), { type: g[o], data: i };
				}),
				(e.decodeBase64Packet = function (t, e) {
					var n = g[t.charAt(0)];
					if (!a) return { type: n, data: { base64: !0, data: t.substr(1) } };
					var r = a.decode(t.substr(1));
					return 'blob' === e && b && (r = new b([r])), { type: n, data: r };
				}),
				(e.encodePayload = function (t, n, r) {
					'function' == typeof n && ((r = n), (n = null));
					var o = u(t);
					return n && o
						? b && !y
							? e.encodePayloadAsBlob(t, r)
							: e.encodePayloadAsArrayBuffer(t, r)
						: t.length
						? void s(
								t,
								function (t, r) {
									e.encodePacket(t, !!o && n, !1, function (t) {
										r(
											null,
											(function (t) {
												return t.length + ':' + t;
											})(t)
										);
									});
								},
								function (t, e) {
									return r(e.join(''));
								}
						  )
						: r('0:');
				}),
				(e.decodePayload = function (t, n, r) {
					if ('string' != typeof t) return e.decodePayloadAsBinary(t, n, r);
					var o;
					if (('function' == typeof n && ((r = n), (n = null)), '' === t)) return r(v, 0, 1);
					for (var i, s, a = '', c = 0, u = t.length; c < u; c++) {
						var p = t.charAt(c);
						if (':' === p) {
							if ('' === a || a != (i = Number(a))) return r(v, 0, 1);
							if (a != (s = t.substr(c + 1, i)).length) return r(v, 0, 1);
							if (s.length) {
								if (((o = e.decodePacket(s, n, !1)), v.type === o.type && v.data === o.data)) return r(v, 0, 1);
								if (!1 === r(o, c + i, u)) return;
							}
							(c += i), (a = '');
						} else a += p;
					}
					return '' !== a ? r(v, 0, 1) : void 0;
				}),
				(e.encodePayloadAsArrayBuffer = function (t, n) {
					return t.length
						? void s(
								t,
								function (t, n) {
									e.encodePacket(t, !0, !0, function (t) {
										return n(null, t);
									});
								},
								function (t, e) {
									var r = e.reduce(function (t, e) {
											var n;
											return t + (n = 'string' == typeof e ? e.length : e.byteLength).toString().length + n + 2;
										}, 0),
										o = new Uint8Array(r),
										i = 0;
									return (
										e.forEach(function (t) {
											var e = 'string' == typeof t,
												n = t;
											if (e) {
												for (var r = new Uint8Array(t.length), s = 0; s < t.length; s++) r[s] = t.charCodeAt(s);
												n = r.buffer;
											}
											o[i++] = e ? 0 : 1;
											var a = n.byteLength.toString();
											for (s = 0; s < a.length; s++) o[i++] = parseInt(a[s]);
											o[i++] = 255;
											for (r = new Uint8Array(n), s = 0; s < r.length; s++) o[i++] = r[s];
										}),
										n(o.buffer)
									);
								}
						  )
						: n(new ArrayBuffer(0));
				}),
				(e.encodePayloadAsBlob = function (t, n) {
					s(
						t,
						function (t, n) {
							e.encodePacket(t, !0, !0, function (t) {
								var e = new Uint8Array(1);
								if (((e[0] = 1), 'string' == typeof t)) {
									for (var r = new Uint8Array(t.length), o = 0; o < t.length; o++) r[o] = t.charCodeAt(o);
									(t = r.buffer), (e[0] = 0);
								}
								var i = (t instanceof ArrayBuffer ? t.byteLength : t.size).toString(),
									s = new Uint8Array(i.length + 1);
								for (o = 0; o < i.length; o++) s[o] = parseInt(i[o]);
								if (((s[i.length] = 255), b)) {
									var a = new b([e.buffer, s.buffer, t]);
									n(null, a);
								}
							});
						},
						function (t, e) {
							return n(new b(e));
						}
					);
				}),
				(e.decodePayloadAsBinary = function (t, n, r) {
					'function' == typeof n && ((r = n), (n = null));
					for (var o = t, i = []; o.byteLength > 0; ) {
						for (var s = new Uint8Array(o), a = 0 === s[0], c = '', h = 1; 255 !== s[h]; h++) {
							if (c.length > 310) return r(v, 0, 1);
							c += s[h];
						}
						(o = p(o, 2 + c.length)), (c = parseInt(c));
						var f = p(o, 0, c);
						if (a)
							try {
								f = String.fromCharCode.apply(null, new Uint8Array(f));
							} catch (u) {
								var l = new Uint8Array(f);
								f = '';
								for (h = 0; h < l.length; h++) f += String.fromCharCode(l[h]);
							}
						i.push(f), (o = p(o, c));
					}
					var d = i.length;
					i.forEach(function (t, o) {
						r(e.decodePacket(t, n, !0), o, d);
					});
				});
		},
		function (t, e) {
			t.exports =
				Object.keys ||
				function (t) {
					var e = [],
						n = Object.prototype.hasOwnProperty;
					for (var r in t) n.call(t, r) && e.push(r);
					return e;
				};
		},
		function (t, e, n) {
			var r = n(13),
				o = Object.prototype.toString,
				i = 'function' == typeof Blob || ('undefined' != typeof Blob && '[object BlobConstructor]' === o.call(Blob)),
				s = 'function' == typeof File || ('undefined' != typeof File && '[object FileConstructor]' === o.call(File));
			t.exports = function t(e) {
				if (!e || 'object' != typeof e) return !1;
				if (r(e)) {
					for (var n = 0, o = e.length; n < o; n++) if (t(e[n])) return !0;
					return !1;
				}
				if (
					('function' == typeof Buffer && Buffer.isBuffer && Buffer.isBuffer(e)) ||
					('function' == typeof ArrayBuffer && e instanceof ArrayBuffer) ||
					(i && e instanceof Blob) ||
					(s && e instanceof File)
				)
					return !0;
				if (e.toJSON && 'function' == typeof e.toJSON && 1 === arguments.length) return t(e.toJSON(), !0);
				for (var a in e) if (Object.prototype.hasOwnProperty.call(e, a) && t(e[a])) return !0;
				return !1;
			};
		},
		function (t, e) {
			t.exports = function (t, e, n) {
				var r = t.byteLength;
				if (((e = e || 0), (n = n || r), t.slice)) return t.slice(e, n);
				if ((e < 0 && (e += r), n < 0 && (n += r), n > r && (n = r), e >= r || e >= n || 0 === r)) return new ArrayBuffer(0);
				for (var o = new Uint8Array(t), i = new Uint8Array(n - e), s = e, a = 0; s < n; s++, a++) i[a] = o[s];
				return i.buffer;
			};
		},
		function (t, e) {
			function n() {}
			t.exports = function (t, e, r) {
				function o(t, n) {
					if (o.count <= 0) throw new Error('after called too many times');
					--o.count, t ? ((i = !0), e(t), (e = r)) : 0 !== o.count || i || e(null, n);
				}
				var i = !1;
				return (r = r || n), (o.count = t), 0 === t ? e() : o;
			};
		},
		function (t, e) {
			function n(t) {
				for (var e, n, r = [], o = 0, i = t.length; o < i; )
					(e = t.charCodeAt(o++)) >= 55296 && e <= 56319 && o < i
						? 56320 == (64512 & (n = t.charCodeAt(o++)))
							? r.push(((1023 & e) << 10) + (1023 & n) + 65536)
							: (r.push(e), o--)
						: r.push(e);
				return r;
			}
			function r(t, e) {
				if (t >= 55296 && t <= 57343) {
					if (e) throw Error('Lone surrogate U+' + t.toString(16).toUpperCase() + ' is not a scalar value');
					return !1;
				}
				return !0;
			}
			function o(t, e) {
				return h(((t >> e) & 63) | 128);
			}
			function i(t, e) {
				if (0 == (4294967168 & t)) return h(t);
				var n = '';
				return (
					0 == (4294965248 & t)
						? (n = h(((t >> 6) & 31) | 192))
						: 0 == (4294901760 & t)
						? (r(t, e) || (t = 65533), (n = h(((t >> 12) & 15) | 224)), (n += o(t, 6)))
						: 0 == (4292870144 & t) && ((n = h(((t >> 18) & 7) | 240)), (n += o(t, 12)), (n += o(t, 6))),
					n + h((63 & t) | 128)
				);
			}
			function s() {
				if (p >= u) throw Error('Invalid byte index');
				var t = 255 & c[p];
				if ((p++, 128 == (192 & t))) return 63 & t;
				throw Error('Invalid continuation byte');
			}
			function a(t) {
				var e, n;
				if (p > u) throw Error('Invalid byte index');
				if (p == u) return !1;
				if (((e = 255 & c[p]), p++, 0 == (128 & e))) return e;
				if (192 == (224 & e)) {
					if ((n = ((31 & e) << 6) | s()) >= 128) return n;
					throw Error('Invalid continuation byte');
				}
				if (224 == (240 & e)) {
					if ((n = ((15 & e) << 12) | (s() << 6) | s()) >= 2048) return r(n, t) ? n : 65533;
					throw Error('Invalid continuation byte');
				}
				if (240 == (248 & e) && (n = ((7 & e) << 18) | (s() << 12) | (s() << 6) | s()) >= 65536 && n <= 1114111) return n;
				throw Error('Invalid UTF-8 detected');
			}
			var c,
				u,
				p,
				h = String.fromCharCode;
			t.exports = {
				version: '2.1.2',
				encode: function (t, e) {
					for (var r = !1 !== (e = e || {}).strict, o = n(t), s = o.length, a = -1, c = ''; ++a < s; ) c += i(o[a], r);
					return c;
				},
				decode: function (t, e) {
					var r = !1 !== (e = e || {}).strict;
					(c = n(t)), (u = c.length), (p = 0);
					for (var o, i = []; !1 !== (o = a(r)); ) i.push(o);
					return (function (t) {
						for (var e, n = t.length, r = -1, o = ''; ++r < n; ) (e = t[r]) > 65535 && ((o += h((((e -= 65536) >>> 10) & 1023) | 55296)), (e = 56320 | (1023 & e))), (o += h(e));
						return o;
					})(i);
				}
			};
		},
		function (t, e) {
			!(function () {
				'use strict';
				for (var t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', n = new Uint8Array(256), r = 0; r < t.length; r++) n[t.charCodeAt(r)] = r;
				(e.encode = function (e) {
					var n,
						r = new Uint8Array(e),
						o = r.length,
						i = '';
					for (n = 0; n < o; n += 3) (i += t[r[n] >> 2]), (i += t[((3 & r[n]) << 4) | (r[n + 1] >> 4)]), (i += t[((15 & r[n + 1]) << 2) | (r[n + 2] >> 6)]), (i += t[63 & r[n + 2]]);
					return o % 3 === 2 ? (i = i.substring(0, i.length - 1) + '=') : o % 3 === 1 && (i = i.substring(0, i.length - 2) + '=='), i;
				}),
					(e.decode = function (t) {
						var e,
							r,
							o,
							i,
							s,
							a = 0.75 * t.length,
							c = t.length,
							u = 0;
						'=' === t[t.length - 1] && (a--, '=' === t[t.length - 2] && a--);
						var p = new ArrayBuffer(a),
							h = new Uint8Array(p);
						for (e = 0; e < c; e += 4)
							(r = n[t.charCodeAt(e)]),
								(o = n[t.charCodeAt(e + 1)]),
								(i = n[t.charCodeAt(e + 2)]),
								(s = n[t.charCodeAt(e + 3)]),
								(h[u++] = (r << 2) | (o >> 4)),
								(h[u++] = ((15 & o) << 4) | (i >> 2)),
								(h[u++] = ((3 & i) << 6) | (63 & s));
						return p;
					});
			})();
		},
		function (t, e) {
			function n(t) {
				return t.map(function (t) {
					if (t.buffer instanceof ArrayBuffer) {
						var e = t.buffer;
						if (t.byteLength !== e.byteLength) {
							var n = new Uint8Array(t.byteLength);
							n.set(new Uint8Array(e, t.byteOffset, t.byteLength)), (e = n.buffer);
						}
						return e;
					}
					return t;
				});
			}
			function r(t, e) {
				e = e || {};
				var r = new i();
				return (
					n(t).forEach(function (t) {
						r.append(t);
					}),
					e.type ? r.getBlob(e.type) : r.getBlob()
				);
			}
			function o(t, e) {
				return new Blob(n(t), e || {});
			}
			var i =
					'undefined' != typeof i
						? i
						: 'undefined' != typeof WebKitBlobBuilder
						? WebKitBlobBuilder
						: 'undefined' != typeof MSBlobBuilder
						? MSBlobBuilder
						: 'undefined' != typeof MozBlobBuilder && MozBlobBuilder,
				s = (function () {
					try {
						return 2 === new Blob(['hi']).size;
					} catch (e) {
						return !1;
					}
				})(),
				a =
					s &&
					(function () {
						try {
							return 2 === new Blob([new Uint8Array([1, 2])]).size;
						} catch (e) {
							return !1;
						}
					})(),
				c = i && i.prototype.append && i.prototype.getBlob;
			'undefined' != typeof Blob && ((r.prototype = Blob.prototype), (o.prototype = Blob.prototype)), (t.exports = s ? (a ? Blob : o) : c ? r : void 0);
		},
		function (t, e) {
			(e.encode = function (t) {
				var e = '';
				for (var n in t) t.hasOwnProperty(n) && (e.length && (e += '&'), (e += encodeURIComponent(n) + '=' + encodeURIComponent(t[n])));
				return e;
			}),
				(e.decode = function (t) {
					for (var e = {}, n = t.split('&'), r = 0, o = n.length; r < o; r++) {
						var i = n[r].split('=');
						e[decodeURIComponent(i[0])] = decodeURIComponent(i[1]);
					}
					return e;
				});
		},
		function (t, e) {
			t.exports = function (t, e) {
				var n = function () {};
				(n.prototype = e.prototype), (t.prototype = new n()), (t.prototype.constructor = t);
			};
		},
		function (t, e) {
			'use strict';
			function n(t) {
				var e = '';
				do {
					(e = i[t % s] + e), (t = Math.floor(t / s));
				} while (t > 0);
				return e;
			}
			function r() {
				var t = n(+new Date());
				return t !== o ? ((c = 0), (o = t)) : t + '.' + n(c++);
			}
			for (var o, i = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), s = 64, a = {}, c = 0, u = 0; u < s; u++) a[i[u]] = u;
			(r.encode = n),
				(r.decode = function (t) {
					var e = 0;
					for (u = 0; u < t.length; u++) e = e * s + a[t.charAt(u)];
					return e;
				}),
				(t.exports = r);
		},
		function (t, e, n) {
			(function (e) {
				function r() {}
				function o() {
					return 'undefined' != typeof self ? self : 'undefined' != typeof window ? window : 'undefined' != typeof e ? e : {};
				}
				function i(t) {
					if ((s.call(this, t), (this.query = this.query || {}), !c)) {
						var e = o();
						c = e.___eio = e.___eio || [];
					}
					this.index = c.length;
					var n = this;
					c.push(function (t) {
						n.onData(t);
					}),
						(this.query.j = this.index),
						'function' == typeof addEventListener &&
							addEventListener(
								'beforeunload',
								function () {
									n.script && (n.script.onerror = r);
								},
								!1
							);
				}
				var s = n(22),
					a = n(33);
				t.exports = i;
				var c,
					u = /\n/g,
					p = /\\n/g;
				a(i, s),
					(i.prototype.supportsBinary = !1),
					(i.prototype.doClose = function () {
						this.script && (this.script.parentNode.removeChild(this.script), (this.script = null)),
							this.form && (this.form.parentNode.removeChild(this.form), (this.form = null), (this.iframe = null)),
							s.prototype.doClose.call(this);
					}),
					(i.prototype.doPoll = function () {
						var t = this,
							e = document.createElement('script');
						this.script && (this.script.parentNode.removeChild(this.script), (this.script = null)),
							(e.async = !0),
							(e.src = this.uri()),
							(e.onerror = function (e) {
								t.onError('jsonp poll error', e);
							});
						var n = document.getElementsByTagName('script')[0];
						n ? n.parentNode.insertBefore(e, n) : (document.head || document.body).appendChild(e),
							(this.script = e),
							'undefined' != typeof navigator &&
								/gecko/i.test(navigator.userAgent) &&
								setTimeout(function () {
									var t = document.createElement('iframe');
									document.body.appendChild(t), document.body.removeChild(t);
								}, 100);
					}),
					(i.prototype.doWrite = function (t, e) {
						function n() {
							r(), e();
						}
						function r() {
							if (o.iframe)
								try {
									o.form.removeChild(o.iframe);
								} catch (t) {
									o.onError('jsonp polling iframe removal error', t);
								}
							try {
								var e = '<iframe src="javascript:0" name="' + o.iframeId + '">';
								i = document.createElement(e);
							} catch (t) {
								((i = document.createElement('iframe')).name = o.iframeId), (i.src = 'javascript:0');
							}
							(i.id = o.iframeId), o.form.appendChild(i), (o.iframe = i);
						}
						var o = this;
						if (!this.form) {
							var i,
								s = document.createElement('form'),
								a = document.createElement('textarea'),
								c = (this.iframeId = 'eio_iframe_' + this.index);
							(s.className = 'socketio'),
								(s.style.position = 'absolute'),
								(s.style.top = '-1000px'),
								(s.style.left = '-1000px'),
								(s.target = c),
								(s.method = 'POST'),
								s.setAttribute('accept-charset', 'utf-8'),
								(a.name = 'd'),
								s.appendChild(a),
								document.body.appendChild(s),
								(this.form = s),
								(this.area = a);
						}
						(this.form.action = this.uri()), r(), (t = t.replace(p, '\\\n')), (this.area.value = t.replace(u, '\\n'));
						try {
							this.form.submit();
						} catch (h) {}
						this.iframe.attachEvent
							? (this.iframe.onreadystatechange = function () {
									'complete' === o.iframe.readyState && n();
							  })
							: (this.iframe.onload = n);
					});
			}).call(
				e,
				(function () {
					return this;
				})()
			);
		},
		function (t, e, n) {
			function r(t) {
				t && t.forceBase64 && (this.supportsBinary = !1),
					(this.perMessageDeflate = t.perMessageDeflate),
					(this.usingBrowserWebSocket = o && !t.forceNode),
					(this.protocols = t.protocols),
					this.usingBrowserWebSocket || (f = i),
					s.call(this, t);
			}
			var o,
				i,
				s = n(23),
				a = n(24),
				c = n(32),
				u = n(33),
				p = n(34),
				h = n(3)('engine.io-client:websocket');
			if (('undefined' != typeof WebSocket ? (o = WebSocket) : 'undefined' != typeof self && (o = self.WebSocket || self.MozWebSocket), 'undefined' == typeof window))
				try {
					i = n(37);
				} catch (l) {}
			var f = o || i;
			(t.exports = r),
				u(r, s),
				(r.prototype.name = 'websocket'),
				(r.prototype.supportsBinary = !0),
				(r.prototype.doOpen = function () {
					if (this.check()) {
						var t = this.uri(),
							e = this.protocols,
							n = { agent: this.agent, perMessageDeflate: this.perMessageDeflate };
						(n.pfx = this.pfx),
							(n.key = this.key),
							(n.passphrase = this.passphrase),
							(n.cert = this.cert),
							(n.ca = this.ca),
							(n.ciphers = this.ciphers),
							(n.rejectUnauthorized = this.rejectUnauthorized),
							this.extraHeaders && (n.headers = this.extraHeaders),
							this.localAddress && (n.localAddress = this.localAddress);
						try {
							this.ws = this.usingBrowserWebSocket && !this.isReactNative ? (e ? new f(t, e) : new f(t)) : new f(t, e, n);
						} catch (r) {
							return this.emit('error', r);
						}
						void 0 === this.ws.binaryType && (this.supportsBinary = !1),
							this.ws.supports && this.ws.supports.binary ? ((this.supportsBinary = !0), (this.ws.binaryType = 'nodebuffer')) : (this.ws.binaryType = 'arraybuffer'),
							this.addEventListeners();
					}
				}),
				(r.prototype.addEventListeners = function () {
					var t = this;
					(this.ws.onopen = function () {
						t.onOpen();
					}),
						(this.ws.onclose = function () {
							t.onClose();
						}),
						(this.ws.onmessage = function (e) {
							t.onData(e.data);
						}),
						(this.ws.onerror = function (e) {
							t.onError('websocket error', e);
						});
				}),
				(r.prototype.write = function (t) {
					var e = this;
					this.writable = !1;
					for (var n = t.length, r = 0, o = n; r < o; r++)
						!(function (t) {
							a.encodePacket(t, e.supportsBinary, function (r) {
								if (!e.usingBrowserWebSocket) {
									var o = {};
									if ((t.options && (o.compress = t.options.compress), e.perMessageDeflate))
										('string' == typeof r ? Buffer.byteLength(r) : r.length) < e.perMessageDeflate.threshold && (o.compress = !1);
								}
								try {
									e.usingBrowserWebSocket ? e.ws.send(r) : e.ws.send(r, o);
								} catch (a) {
									h('websocket closed before onclose event');
								}
								--n ||
									(e.emit('flush'),
									setTimeout(function () {
										(e.writable = !0), e.emit('drain');
									}, 0));
							});
						})(t[r]);
				}),
				(r.prototype.onClose = function () {
					s.prototype.onClose.call(this);
				}),
				(r.prototype.doClose = function () {
					'undefined' != typeof this.ws && this.ws.close();
				}),
				(r.prototype.uri = function () {
					var t = this.query || {},
						e = this.secure ? 'wss' : 'ws',
						n = '';
					return (
						this.port && (('wss' === e && 443 !== Number(this.port)) || ('ws' === e && 80 !== Number(this.port))) && (n = ':' + this.port),
						this.timestampRequests && (t[this.timestampParam] = p()),
						this.supportsBinary || (t.b64 = 1),
						(t = c.encode(t)).length && (t = '?' + t),
						e + '://' + (-1 !== this.hostname.indexOf(':') ? '[' + this.hostname + ']' : this.hostname) + n + this.path + t
					);
				}),
				(r.prototype.check = function () {
					return !(!f || ('__initialize' in f && this.name === r.prototype.name));
				});
		},
		function (t, e) {},
		function (t, e) {
			var n = [].indexOf;
			t.exports = function (t, e) {
				if (n) return t.indexOf(e);
				for (var r = 0; r < t.length; ++r) if (t[r] === e) return r;
				return -1;
			};
		},
		function (t, e, n) {
			function r(t, e, n) {
				(this.io = t),
					(this.nsp = e),
					(this.json = this),
					(this.ids = 0),
					(this.acks = {}),
					(this.receiveBuffer = []),
					(this.sendBuffer = []),
					(this.connected = !1),
					(this.disconnected = !0),
					(this.flags = {}),
					n && n.query && (this.query = n.query),
					this.io.autoConnect && this.open();
			}
			var o = n(7),
				i = n(11),
				s = n(40),
				a = n(41),
				c = n(42),
				u = n(3)('socket.io-client:socket'),
				p = n(32),
				h = n(26);
			t.exports = r;
			var f = {
					connect: 1,
					connect_error: 1,
					connect_timeout: 1,
					connecting: 1,
					disconnect: 1,
					error: 1,
					reconnect: 1,
					reconnect_attempt: 1,
					reconnect_failed: 1,
					reconnect_error: 1,
					reconnecting: 1,
					ping: 1,
					pong: 1
				},
				l = i.prototype.emit;
			i(r.prototype),
				(r.prototype.subEvents = function () {
					if (!this.subs) {
						var t = this.io;
						this.subs = [a(t, 'open', c(this, 'onopen')), a(t, 'packet', c(this, 'onpacket')), a(t, 'close', c(this, 'onclose'))];
					}
				}),
				(r.prototype.open = r.prototype.connect =
					function () {
						return this.connected || (this.subEvents(), this.io.open(), 'open' === this.io.readyState && this.onopen(), this.emit('connecting')), this;
					}),
				(r.prototype.send = function () {
					var t = s(arguments);
					return t.unshift('message'), this.emit.apply(this, t), this;
				}),
				(r.prototype.emit = function (t) {
					if (f.hasOwnProperty(t)) return l.apply(this, arguments), this;
					var e = s(arguments),
						n = { type: (void 0 !== this.flags.binary ? this.flags.binary : h(e)) ? o.BINARY_EVENT : o.EVENT, data: e, options: {} };
					return (
						(n.options.compress = !this.flags || !1 !== this.flags.compress),
						'function' == typeof e[e.length - 1] && (u('emitting packet with ack id %d', this.ids), (this.acks[this.ids] = e.pop()), (n.id = this.ids++)),
						this.connected ? this.packet(n) : this.sendBuffer.push(n),
						(this.flags = {}),
						this
					);
				}),
				(r.prototype.packet = function (t) {
					(t.nsp = this.nsp), this.io.packet(t);
				}),
				(r.prototype.onopen = function () {
					if ((u('transport is open - connecting'), '/' !== this.nsp))
						if (this.query) {
							var t = 'object' == typeof this.query ? p.encode(this.query) : this.query;
							u('sending connect packet with query %s', t), this.packet({ type: o.CONNECT, query: t });
						} else this.packet({ type: o.CONNECT });
				}),
				(r.prototype.onclose = function (t) {
					u('close (%s)', t), (this.connected = !1), (this.disconnected = !0), delete this.id, this.emit('disconnect', t);
				}),
				(r.prototype.onpacket = function (t) {
					var e = t.nsp === this.nsp,
						n = t.type === o.ERROR && '/' === t.nsp;
					if (e || n)
						switch (t.type) {
							case o.CONNECT:
								this.onconnect();
								break;
							case o.EVENT:
							case o.BINARY_EVENT:
								this.onevent(t);
								break;
							case o.ACK:
							case o.BINARY_ACK:
								this.onack(t);
								break;
							case o.DISCONNECT:
								this.ondisconnect();
								break;
							case o.ERROR:
								this.emit('error', t.data);
						}
				}),
				(r.prototype.onevent = function (t) {
					var e = t.data || [];
					u('emitting event %j', e), null != t.id && (u('attaching ack callback to event'), e.push(this.ack(t.id))), this.connected ? l.apply(this, e) : this.receiveBuffer.push(e);
				}),
				(r.prototype.ack = function (t) {
					var e = this,
						n = !1;
					return function () {
						if (!n) {
							n = !0;
							var r = s(arguments);
							u('sending ack %j', r), e.packet({ type: h(r) ? o.BINARY_ACK : o.ACK, id: t, data: r });
						}
					};
				}),
				(r.prototype.onack = function (t) {
					var e = this.acks[t.id];
					'function' == typeof e ? (u('calling ack %s with %j', t.id, t.data), e.apply(this, t.data), delete this.acks[t.id]) : u('bad ack %s', t.id);
				}),
				(r.prototype.onconnect = function () {
					(this.connected = !0), (this.disconnected = !1), this.emit('connect'), this.emitBuffered();
				}),
				(r.prototype.emitBuffered = function () {
					var t;
					for (t = 0; t < this.receiveBuffer.length; t++) l.apply(this, this.receiveBuffer[t]);
					for (this.receiveBuffer = [], t = 0; t < this.sendBuffer.length; t++) this.packet(this.sendBuffer[t]);
					this.sendBuffer = [];
				}),
				(r.prototype.ondisconnect = function () {
					u('server disconnect (%s)', this.nsp), this.destroy(), this.onclose('io server disconnect');
				}),
				(r.prototype.destroy = function () {
					if (this.subs) {
						for (var t = 0; t < this.subs.length; t++) this.subs[t].destroy();
						this.subs = null;
					}
					this.io.destroy(this);
				}),
				(r.prototype.close = r.prototype.disconnect =
					function () {
						return (
							this.connected && (u('performing disconnect (%s)', this.nsp), this.packet({ type: o.DISCONNECT })),
							this.destroy(),
							this.connected && this.onclose('io client disconnect'),
							this
						);
					}),
				(r.prototype.compress = function (t) {
					return (this.flags.compress = t), this;
				}),
				(r.prototype.binary = function (t) {
					return (this.flags.binary = t), this;
				});
		},
		function (t, e) {
			t.exports = function (t, e) {
				for (var n = [], r = (e = e || 0) || 0; r < t.length; r++) n[r - e] = t[r];
				return n;
			};
		},
		function (t, e) {
			t.exports = function (t, e, n) {
				return (
					t.on(e, n),
					{
						destroy: function () {
							t.removeListener(e, n);
						}
					}
				);
			};
		},
		function (t, e) {
			var n = [].slice;
			t.exports = function (t, e) {
				if (('string' == typeof e && (e = t[e]), 'function' != typeof e)) throw new Error('bind() requires a function');
				var r = n.call(arguments, 2);
				return function () {
					return e.apply(t, r.concat(n.call(arguments)));
				};
			};
		},
		function (t, e) {
			function n(t) {
				(t = t || {}), (this.ms = t.min || 100), (this.max = t.max || 1e4), (this.factor = t.factor || 2), (this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0), (this.attempts = 0);
			}
			(t.exports = n),
				(n.prototype.duration = function () {
					var t = this.ms * Math.pow(this.factor, this.attempts++);
					if (this.jitter) {
						var e = Math.random(),
							n = Math.floor(e * this.jitter * t);
						t = 0 == (1 & Math.floor(10 * e)) ? t - n : t + n;
					}
					return 0 | Math.min(t, this.max);
				}),
				(n.prototype.reset = function () {
					this.attempts = 0;
				}),
				(n.prototype.setMin = function (t) {
					this.ms = t;
				}),
				(n.prototype.setMax = function (t) {
					this.max = t;
				}),
				(n.prototype.setJitter = function (t) {
					this.jitter = t;
				});
		}
	]);
});
